Package me.aurous.ui.panels

Source Code of me.aurous.ui.panels.TabelPanel

package me.aurous.ui.panels;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.BorderFactory;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EtchedBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableColumn;

import me.aurous.player.Settings;
import me.aurous.ui.models.ForcedListSelectionModel;
import me.aurous.utils.Constants;
import me.aurous.utils.ModelUtils;
import me.aurous.utils.media.MediaUtils;
import me.aurous.utils.playlist.PlayListUtils;

/**
* @author Andrew
*
*/
public class TabelPanel extends JPanel implements ActionListener {
  public static JTable table;
  public static DefaultTableModel tableModel;
  private final Color background = new Color(35, 35, 35);
  JPopupMenu popup;

  /**
   *
   */
  private static final long serialVersionUID = -5598764407384505341L;
  protected JScrollPane scroller;

  public TabelPanel() {

    initPanel();

  }

  @Override
  public void actionPerformed(final ActionEvent e) {
    final Component c = (Component) e.getSource();
    final JPopupMenu popup = (JPopupMenu) c.getParent();
    final JTable table = (JTable) popup.getInvoker();

    switch (e.getActionCommand()) {
    case "Delete":
      PlayListUtils.removeSelectedRows(table);
      break;
    case "Play":
      MediaUtils.switchMedia(table);
      break;
    case "Share":
      // System.out.println("Sharing");
      break;
    case "Copy URL":
      MediaUtils.copyMediaURL(table);
      break;
    }
    // System.out.println(searchTable.getSelectedRow() + " : " +
    // searchTable.getSelectedColumn());
  }

  public void initPanel() {
    setBackground(background);
    setLayout(new BorderLayout());

    table = new JTable();

    table.setBackground(background);
    table.setForeground(Color.GRAY);
    table.setOpaque(true);

    final JTableHeader header = table.getTableHeader();
    header.setOpaque(false);
    header.setBorder(BorderFactory.createRaisedSoftBevelBorder());
    header.setForeground(Color.GRAY);
    header.setAutoscrolls(true);

    header.setFont(new Font("Calibri", Font.PLAIN, 14));

    header.setBorder(BorderFactory.createEmptyBorder());

    if (Settings.getLastPlayList().isEmpty()) {

      ModelUtils
      .loadPlayList(Constants.DATA_PATH + "scripts/blank.plist");
    } else {
      ModelUtils.loadPlayList(Settings.getLastPlayList());
    }

    table.addKeyListener(new KeyAdapter() {
      @Override
      public void keyReleased(final KeyEvent e) {
        final int c = e.getKeyCode();
        final JTable target = (JTable) e.getSource();
        if (c == KeyEvent.VK_DELETE) {
          PlayListUtils.removeSelectedRows(target);
          // PlayListUtils.removeLineFromPlayList(file, lineToRemove)

        } else if (c == KeyEvent.VK_ADD) {

        } else if (c == KeyEvent.VK_LEFT) {

        } else if (c == KeyEvent.VK_RIGHT) {

        } else if (c == KeyEvent.VK_ENTER) {

        }
      }
    });
    table.addMouseListener(new MouseAdapter() {
      @Override
      public void mouseClicked(final MouseEvent e) {
        if (e.getClickCount() == 2) {
          final JTable target = (JTable) e.getSource();

          target.getSelectedRow();
          MediaUtils.switchMedia(target);
        }

      }

      @Override
      public void mouseReleased(final MouseEvent e) {
        if (e.isPopupTrigger()) {
          final JTable source = (JTable) e.getSource();
          final int row = source.rowAtPoint(e.getPoint());
          final int column = source.columnAtPoint(e.getPoint());

          if (!source.isRowSelected(row)) {
            source.changeSelection(row, column, false, false);
          }

          popup.show(e.getComponent(), e.getX(), e.getY());
        }
      }

    });
    table.setSelectionModel(new ForcedListSelectionModel());

    this.scroller = new javax.swing.JScrollPane(table);

    final TableColumn hiddenLink = table.getColumnModel().getColumn(
        ModelUtils.LINK_INDEX);
    hiddenLink.setMinWidth(0);
    hiddenLink.setPreferredWidth(0);
    hiddenLink.setMaxWidth(0);
    hiddenLink.setCellRenderer(new ModelUtils.InteractiveRenderer(
        ModelUtils.LINK_INDEX));
    final TableColumn hiddenAlbumArt = table.getColumnModel().getColumn(
        ModelUtils.ALBUMART_INDEX);
    hiddenAlbumArt.setMinWidth(0);
    hiddenAlbumArt.setPreferredWidth(0);
    hiddenAlbumArt.setMaxWidth(0);
    hiddenAlbumArt.setCellRenderer(new ModelUtils.InteractiveRenderer(
        ModelUtils.ALBUMART_INDEX));

    // setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));

    // setBorder(new EtchedBorder());

    // this.scroller.setBorder(BorderFactory.createEmptyBorder());

    popup = new JPopupMenu();

    final JMenuItem shareItem = new JMenuItem("Share");
    shareItem.addActionListener(this);
    popup.add(shareItem);
    final JMenuItem copyItem = new JMenuItem("Copy URL");
    copyItem.addActionListener(this);
    popup.add(copyItem);
    final JMenuItem deleteItem = new JMenuItem("Delete");
    deleteItem.addActionListener(this);
    popup.add(deleteItem);
    final JMenuItem playItem = new JMenuItem("Play");
    playItem.addActionListener(this);
    popup.add(playItem);
    table.setAutoCreateRowSorter(true);
    scroller.setBorder(BorderFactory.createEmptyBorder());
    add(this.scroller, BorderLayout.CENTER);
    table.setFillsViewportHeight(true);
    table.setSelectionBackground(table.getBackground());
    table.setSelectionForeground(new Color(213, 163, 0));
    table.setGridColor(new Color(44, 44, 44));
    table.setShowVerticalLines(false);
    table.setBorder(new EtchedBorder());
    table.setFont(new Font("Calibri", Font.PLAIN, 14));
    table.setName("playlist");

  }

}
TOP

Related Classes of me.aurous.ui.panels.TabelPanel

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.