Package me.aurous.ui.widgets

Source Code of me.aurous.ui.widgets.ImporterWidget

package me.aurous.ui.widgets;

import java.awt.Color;
import java.awt.Cursor;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.Window.Type;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
import javax.swing.WindowConstants;

import me.aurous.swinghacks.GhostText;
import me.aurous.ui.UISession;
import me.aurous.utils.playlist.PlayListUtils;

/**
* @author Andrew
*
*/
public class ImporterWidget {

  public static void openImporter() {
    if ((UISession.getImporterWidget() != null)
        && UISession.getImporterWidget().isOpen()) {
      UISession.getImporterWidget().getWidget().toFront();
      UISession.getImporterWidget().getWidget().repaint();
      return;
    }
    EventQueue.invokeLater(() -> {
      try {
        final ImporterWidget window = new ImporterWidget();
        UISession.setImporterWidget(window);
        UISession.getImporterWidget().getWidget().setVisible(true);
      } catch (final Exception e) {
        e.printStackTrace();
      }
    });
  }

  private JFrame importerWidget;

  private JTextField playListNameField;
  private String playListURL = "";

  private JButton redditServiceButton;

  public JButton importPlayListButton;

  public JProgressBar importProgressBar;

  public JLabel importInstrucLabel;

  public JLabel lblEnterAPlaylist;
  private JButton hateChanServiceButton;

  public ImporterWidget() {
    initialize();
  }

  public JLabel getEnterPlaylistLabel() {
    return lblEnterAPlaylist;
  }

  public JLabel getImportInstrucLabel() {
    return importInstrucLabel;
  }

  public JButton getImportPlayListButton() {
    return importPlayListButton;
  }

  public JProgressBar getImportProgressBar() {
    return importProgressBar;
  }

  public JTextField getPlayListNameField() {
    return playListNameField;
  }

  public JFrame getWidget() {
    return importerWidget;
  }

  private void initialize() {
    importerWidget = new JFrame();
    importerWidget.setResizable(false);
    importerWidget.setType(Type.UTILITY);
    importerWidget.setIconImage(Toolkit.getDefaultToolkit().getImage(
        ImporterWidget.class.getResource("/resources/aurouslogo.png")));
    importerWidget.setTitle("Playlist Importer");
    importerWidget.getContentPane().setBackground(new Color(32, 33, 35));
    importerWidget.setBounds(100, 100, 379, 372);
    importerWidget
        .setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
    importerWidget.getContentPane().setLayout(null);
    importerWidget.addWindowListener(new java.awt.event.WindowAdapter() {
      @Override
      public void windowClosing(
          final java.awt.event.WindowEvent windowEvent) {
        final int confirm = JOptionPane.showOptionDialog(
            importerWidget,
            "Are You Sure You Want to Close this Importer?",
            "Exit Confirmation", JOptionPane.YES_NO_OPTION,
            JOptionPane.QUESTION_MESSAGE, null, null, null);
        if (confirm == 0) {
          UISession.setImporterWidget(null);
          importerWidget.dispose();
        }

      }
    });

    final JPanel servicePanel = new JPanel();
    servicePanel.setBackground(Color.DARK_GRAY);
    servicePanel.setBounds(0, 67, 373, 65);
    importerWidget.getContentPane().add(servicePanel);
    servicePanel.setLayout(null);

    importProgressBar = new JProgressBar();
    importProgressBar.setVisible(false);
    importProgressBar.setStringPainted(true);
    importProgressBar.setBounds(0, 180, 373, 37);
    importerWidget.getContentPane().add(importProgressBar);
    final JLabel playListURLLabel = new JLabel("");
    playListURLLabel.setForeground(Color.WHITE);
    playListURLLabel.setFont(new Font("Segoe UI", Font.PLAIN, 11));
    playListURLLabel.setBounds(223, 311, 150, 14);
    importerWidget.getContentPane().add(playListURLLabel);

    final JButton youTubeServiceButton = new JButton("");
    youTubeServiceButton.addActionListener(e -> {

      ImporterWidget.this.playListURL = PlayListUtils
          .importPlayListPrompt();
      playListURLLabel.setText(ImporterWidget.this.playListURL);

    });

    youTubeServiceButton.setCursor(Cursor
        .getPredefinedCursor(Cursor.HAND_CURSOR));
    youTubeServiceButton.setBorderPainted(false);
    youTubeServiceButton.setBorder(null);
    youTubeServiceButton.setMargin(new Insets(0, 0, 0, 0));
    youTubeServiceButton.setContentAreaFilled(false);
    youTubeServiceButton.setIcon(new ImageIcon(ImporterWidget.class
        .getResource("/resources/w_youtube.png")));
    youTubeServiceButton.setRolloverIcon(new ImageIcon(ImporterWidget.class
        .getResource("/resources/w_youtube_h.png")));

    youTubeServiceButton.setBounds(122, 11, 35, 35);

    servicePanel.add(youTubeServiceButton);

    redditServiceButton = new JButton("");
    redditServiceButton.addActionListener(e -> {
      ImporterWidget.this.playListURL = PlayListUtils
          .importPlayListPrompt();
      playListURLLabel.setText(ImporterWidget.this.playListURL);

    });
    redditServiceButton.setCursor(Cursor
        .getPredefinedCursor(Cursor.HAND_CURSOR));
    redditServiceButton.setIcon(new ImageIcon(ImporterWidget.class
        .getResource("/resources/w_reddit.png")));
    redditServiceButton.setRolloverIcon(new ImageIcon(ImporterWidget.class
        .getResource("/resources/w_reddit_h.png")));
    redditServiceButton.setMargin(new Insets(0, 0, 0, 0));
    redditServiceButton.setContentAreaFilled(false);
    redditServiceButton.setBorderPainted(false);
    redditServiceButton.setBorder(null);
    redditServiceButton.setBounds(167, 11, 35, 35);
    servicePanel.add(redditServiceButton);

    hateChanServiceButton = new JButton("");
    hateChanServiceButton.setIcon(new ImageIcon(ImporterWidget.class
        .getResource("/resources/8chan.png")));
    hateChanServiceButton.setRolloverIcon(new ImageIcon(
        ImporterWidget.class.getResource("/resources/8chan_h.png")));
    hateChanServiceButton.setCursor(Cursor
        .getPredefinedCursor(Cursor.HAND_CURSOR));
    hateChanServiceButton.setMargin(new Insets(0, 0, 0, 0));
    hateChanServiceButton.setContentAreaFilled(false);
    hateChanServiceButton.setBorderPainted(false);
    hateChanServiceButton.setBorder(null);
    hateChanServiceButton.setBounds(212, 11, 35, 35);
    hateChanServiceButton.addActionListener(e -> {
      ImporterWidget.this.playListURL = PlayListUtils
          .importPlayListPrompt();
      playListURLLabel.setText(ImporterWidget.this.playListURL);

    });
    servicePanel.add(hateChanServiceButton);

    final JLabel lblSelectAService = new JLabel("Select a Service");
    lblSelectAService.setFont(new Font("Segoe UI", Font.PLAIN, 20));
    lblSelectAService.setHorizontalAlignment(SwingConstants.CENTER);
    lblSelectAService.setForeground(Color.WHITE);
    lblSelectAService.setBounds(54, 11, 251, 50);
    importerWidget.getContentPane().add(lblSelectAService);

    this.playListNameField = new JTextField();
    this.playListNameField.setBorder(UIManager
        .getBorder("TextField.border"));
    this.playListNameField.setHorizontalAlignment(SwingConstants.CENTER);
    this.playListNameField.setFont(new Font("Segoe UI", Font.PLAIN, 23));
    this.playListNameField.setBounds(0, 180, 373, 37);
    importerWidget.getContentPane().add(this.playListNameField);
    final GhostText ghostText = new GhostText("FMA OST",
        this.playListNameField);
    ghostText.setHorizontalAlignment(SwingConstants.CENTER);
    ghostText.setHorizontalTextPosition(SwingConstants.CENTER);
    this.playListNameField.setColumns(10);

    lblEnterAPlaylist = new JLabel("Enter a Playlist Name");
    lblEnterAPlaylist.setHorizontalAlignment(SwingConstants.CENTER);
    lblEnterAPlaylist.setForeground(Color.WHITE);
    lblEnterAPlaylist.setFont(new Font("Segoe UI", Font.PLAIN, 20));
    lblEnterAPlaylist.setBounds(54, 133, 251, 50);
    importerWidget.getContentPane().add(lblEnterAPlaylist);

    importPlayListButton = new JButton("");
    importPlayListButton.addActionListener(e -> {
      if (!ImporterWidget.this.playListURL.trim().isEmpty()
          && !ImporterWidget.this.playListNameField.getText().trim()
              .isEmpty()) {

        importProgressBar.setVisible(true);

        PlayListUtils.getImportRules(this.playListURL,
            this.playListNameField.getText());

      } else {
        JOptionPane.showMessageDialog(importerWidget,
            "No playlist url or name detected", "Error",
            JOptionPane.ERROR_MESSAGE);
        return;
      }
    });
    importPlayListButton.setCursor(Cursor
        .getPredefinedCursor(Cursor.HAND_CURSOR));
    importPlayListButton.setBorderPainted(false);
    importPlayListButton.setBorder(null);
    importPlayListButton.setMargin(new Insets(0, 0, 0, 0));
    importPlayListButton.setContentAreaFilled(false);
    importPlayListButton.setIcon(new ImageIcon(ImporterWidget.class
        .getResource("/resources/ic_export_import.png")));
    importPlayListButton.setBounds(149, 261, 64, 64);
    importerWidget.getContentPane().add(importPlayListButton);

    importInstrucLabel = new JLabel("Import Playlist");
    importInstrucLabel.setFont(new Font("Segoe UI", Font.PLAIN, 20));
    importInstrucLabel.setForeground(Color.WHITE);
    importInstrucLabel.setHorizontalAlignment(SwingConstants.CENTER);
    importInstrucLabel.setBounds(94, 228, 181, 22);
    importerWidget.getContentPane().add(importInstrucLabel);
    importerWidget.setLocationRelativeTo(UISession.getPresenter()
        .getAurousFrame());

  }

  public boolean isOpen() {
    return importerWidget == null ? false : importerWidget.isVisible();
  }
}
TOP

Related Classes of me.aurous.ui.widgets.ImporterWidget

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.