Package miage.ihm

Source Code of miage.ihm.JDialog_PlayList$MyFilter

package miage.ihm;

import javax.swing.JPanel;
import javax.swing.JDialog;
import java.awt.GridBagLayout;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import java.awt.GridBagConstraints;
import javax.swing.JButton;
import java.awt.Insets;

import miage.ListeFichiers;

import entagged.tageditor.resources.LangageManager;
import entagged.tageditor.resources.PreferencesManager;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Vector;

public class JDialog_PlayList extends JDialog {

  private static final long serialVersionUID = 1L;

  private JFrame owner;
  private JPanel jContentPane = null;
  private JScrollPane jScrollPane = null;
  private JTable jTable = null;
  private MyTableModel jTableModel = null;
  private JButton jButton_Play = null;
  private JButton jButton_Save = null;
  private JButton jButton_Clear = null;

  private ArrayList<String> playlist;

  private JButton jButton_Delete = null;

  private JButton jButton_Close = null;

  /**
   * @param owner
   * @param playlist
   */
  public JDialog_PlayList(JFrame owner, ArrayList<String> playlist) {
    super(owner);
    this.owner = owner;
    this.playlist = playlist;
    initialize();
  }

  /**
   * This method initializes this
   *
   * @return void
   */
  private void initialize() {
    this.setSize(493, 263);
    this.setTitle(LangageManager.getProperty("tablemodel.playlist"));
    this.setLocationRelativeTo(this.getParent());
    this.setContentPane(getJContentPane());
  }

  /**
   * This method initializes jContentPane
   *
   * @return javax.swing.JPanel
   */
  private JPanel getJContentPane() {
    if(jContentPane == null) {
      GridBagConstraints gridBagConstraints21 = new GridBagConstraints();
      gridBagConstraints21.gridx = 4;
      gridBagConstraints21.insets = new Insets(10, 10, 10, 10);
      gridBagConstraints21.fill = GridBagConstraints.BOTH;
      gridBagConstraints21.gridy = 1;
      GridBagConstraints gridBagConstraints11 = new GridBagConstraints();
      gridBagConstraints11.gridx = 2;
      gridBagConstraints11.insets = new Insets(10, 10, 10, 10);
      gridBagConstraints11.fill = GridBagConstraints.BOTH;
      gridBagConstraints11.gridy = 1;
      GridBagConstraints gridBagConstraints3 = new GridBagConstraints();
      gridBagConstraints3.gridx = 1;
      gridBagConstraints3.insets = new Insets(10, 10, 10, 10);
      gridBagConstraints3.fill = GridBagConstraints.BOTH;
      gridBagConstraints3.gridheight = 2;
      gridBagConstraints3.weighty = 0.0;
      gridBagConstraints3.weightx = 1.0;
      gridBagConstraints3.gridy = 1;
      GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
      gridBagConstraints2.gridx = 0;
      gridBagConstraints2.insets = new Insets(10, 10, 10, 10);
      gridBagConstraints2.fill = GridBagConstraints.BOTH;
      gridBagConstraints2.weighty = 0.0;
      gridBagConstraints2.weightx = 1.0;
      gridBagConstraints2.gridy = 1;
      GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
      gridBagConstraints1.gridx = 3;
      gridBagConstraints1.gridheight = 2;
      gridBagConstraints1.gridwidth = 1;
      gridBagConstraints1.insets = new Insets(10, 10, 10, 10);
      gridBagConstraints1.fill = GridBagConstraints.BOTH;
      gridBagConstraints1.weighty = 0.0;
      gridBagConstraints1.weightx = 1.0;
      gridBagConstraints1.gridy = 1;
      GridBagConstraints gridBagConstraints = new GridBagConstraints();
      gridBagConstraints.fill = GridBagConstraints.BOTH;
      gridBagConstraints.gridy = 0;
      gridBagConstraints.weightx = 1.0;
      gridBagConstraints.weighty = 1.0;
      gridBagConstraints.gridwidth = 5;
      gridBagConstraints.insets = new Insets(10, 10, 10, 10);
      gridBagConstraints.gridx = 0;
      jContentPane = new JPanel();
      jContentPane.setLayout(new GridBagLayout());
      jContentPane.add(getJScrollPane(), gridBagConstraints);
      jContentPane.add(getJButton_Clear(), gridBagConstraints1);
      jContentPane.add(getJButton_Play(), gridBagConstraints2);
      jContentPane.add(getJButton_Save(), gridBagConstraints3);
      jContentPane.add(getJButton_Delete(), gridBagConstraints11);
      jContentPane.add(getJButton_Close(), gridBagConstraints21);
    }
    return jContentPane;
  }

  /**
   * This method initializes jScrollPane
   *
   * @return javax.swing.JScrollPane
   */
  private JScrollPane getJScrollPane() {
    if(jScrollPane == null) {
      jScrollPane = new JScrollPane();
      jScrollPane.setViewportView(getJTable());
    }
    return jScrollPane;
  }

  /**
   * This method initializes jTable 
   *  
   * @return javax.swing.JTable 
   */
  private JTable getJTable() {
    if(jTable == null) {
      jTable = new JTable();
      jTable.setModel(getJTableModel());
      jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

      Vector v;
      int taille = playlist.size();
      for(int i = 0 ; i < taille ; i++) {
        v = new Vector();
        v.add(playlist.get(i));
        getJTableModel().addRow(v);
      }
     
      jTable.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyReleased(java.awt.event.KeyEvent e) {
          if(e.getKeyCode() == java.awt.event.KeyEvent.VK_DELETE) {
            onDelete();
          }
        }
      });
    }
    return jTable;
  }

  /**
   * This method initializes jTableModel
   *
   * @return javax.swing.TableModel
   */
  private MyTableModel getJTableModel() {
    if(jTableModel == null) {
      jTableModel = new MyTableModel();
      jTableModel.addColumn(LangageManager.getProperty("common.dialog.files"));
    }
    return jTableModel;
  }

  /**
   * This method initializes jButton_Play 
   *  
   * @return javax.swing.JButton 
   */
  private JButton getJButton_Play() {
    if(jButton_Play == null) {
      jButton_Play = new JButton("Play");
      jButton_Play.setText(LangageManager.getProperty("playplayList"));
      jButton_Play.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
          onPlay();
        }
      });
    }
    return jButton_Play;
  }

  /**
   * This method initializes jButton_Save 
   *  
   * @return javax.swing.JButton 
   */
  private JButton getJButton_Save() {
    if(jButton_Save == null) {
      jButton_Save = new JButton("Save");
      jButton_Save.setText(LangageManager.getProperty("common.dialog.save"));
      jButton_Save.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
          onSave();
        }
      });
    }
    return jButton_Save;
  }

  /**
   * This method initializes jButton_Clear 
   *  
   * @return javax.swing.JButton 
   */
  private JButton getJButton_Clear() {
    if(jButton_Clear == null) {
      jButton_Clear = new JButton("Clear");
      jButton_Clear.setText(LangageManager.getProperty("clear"));
      jButton_Clear.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
          onClear();
        }
      });
    }
    return jButton_Clear;
  }
 
  /**
   * This method initializes jButton_Delete 
   *  
   * @return javax.swing.JButton 
   */
  private JButton getJButton_Delete() {
    if(jButton_Delete == null) {
      jButton_Delete = new JButton("Delete");
      jButton_Delete.setText(LangageManager.getProperty("delete"));
      jButton_Delete.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
          onDelete();
        }
      });
    }
    return jButton_Delete;
  }

  /**
   * This method initializes jButton_Close 
   *  
   * @return javax.swing.JButton 
   */
  private JButton getJButton_Close() {
    if(jButton_Close == null) {
      jButton_Close = new JButton("Close");
      jButton_Close.setText(LangageManager.getProperty("close"));
      jButton_Close.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e) {
          onClose();
        }
      });
    }
    return jButton_Close;
  }

  private void onPlay() {
    if(playlist.size() > 0) {
      String url = PreferencesManager.USER_PROPERTIES_DIR + File.separator + "tmp.m3u";
      FileWriter fw;
      try {
        fw = new FileWriter(url);
        BufferedWriter bw = new BufferedWriter(fw);
        for(int i = 0 ; i < playlist.size() ; i++) {
          bw.write(playlist.get(i));
          bw.newLine();
        }
        bw.close();
        fw.close();
       
        ListeFichiers.play(owner, url);
      }
      catch(IOException ex) {
        ex.printStackTrace();
      }
    }
  }

  private void onSave() {
    if(playlist.size() > 0) {
      JFileChooser fc = new JFileChooser();
      fc.addChoosableFileFilter(new MyFilter());

      int returnVal = fc.showSaveDialog(this);
      if (returnVal == JFileChooser.APPROVE_OPTION) {
        String url = fc.getSelectedFile().getAbsolutePath();
        if(url.endsWith(".m3u"))
          url = url.substring(0, url.length() - 4);
        url += ".m3u";
        FileWriter fw;
        try {
          fw = new FileWriter(url);
          BufferedWriter bw = new BufferedWriter(fw);
          for(int i = 0 ; i < playlist.size() ; i++) {
            bw.write(playlist.get(i));
            bw.newLine();
          }
          bw.close();
          fw.close();

          ListeFichiers.play(owner, url);
        }
        catch(IOException ex) {
          ex.printStackTrace();
        }
      }
    }
  }

  private void onClear() {
    for(int i = jTable.getRowCount() - 1 ; i >= 0 ; i--) {
      getJTableModel().removeRow(i);
      playlist.remove(i);
    }
    owner.repaint();
  }
 
  private void onDelete() {
    int row = jTable.getSelectedRow();
    if(row > -1) {
      jTableModel.removeRow(row);
      playlist.remove(row);
      owner.repaint();
      if(jTable.getRowCount() > row)
        jTable.setRowSelectionInterval(row, row);
      else if(jTable.getRowCount() == row && row > 0)
        jTable.setRowSelectionInterval(row - 1, row - 1);
    }
  }
 
  private void onClose() {
    dispose();
  }
 
  class MyFilter extends javax.swing.filechooser.FileFilter {
    public boolean accept(File file) {
      if(file.isDirectory())
        return true;
      else {
        String filename = file.getName();
        return filename.endsWith(".m3u");
      }
    }
    public String getDescription() {
      return "*.m3u";
    }
  }

 
//  @jve:decl-index=0:visual-constraint="10,10"
TOP

Related Classes of miage.ihm.JDialog_PlayList$MyFilter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.