package invisibleButton;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.Toolkit;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.border.EmptyBorder;

public class InvisibleButton {

	public static void main(final String[] args) {
		final JButton submitAnswers = createSubmitAnswersButton();
		final JPanel instructionsPanel = createInstructionsPanel();

		final JPanel testContentPanel = createContentPanel();
		testContentPanel.add(instructionsPanel, BorderLayout.NORTH);
		testContentPanel.add(submitAnswers, BorderLayout.SOUTH);

		final JScrollPane scrollingContentPane = createScrollPaneFor(testContentPanel);

		final JFrame testFrame = createJFrame();
		testFrame.add(scrollingContentPane, BorderLayout.CENTER);

		testFrame.setVisible(true);
	}

	private static JScrollPane createScrollPaneFor(final Component comp) {
		final JScrollPane testScrollPane = new JScrollPane(comp);
		testScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
		testScrollPane.getVerticalScrollBar().setUnitIncrement(16);
		return testScrollPane;
	}

	private static JFrame createJFrame() {
		final JFrame testFrame = new JFrame("testing...1,2,3");

		try {
			testFrame.setIconImage(ImageIO.read(new File("src/icon.png")));
		}
		catch (final IOException e1) {
			e1.printStackTrace();
		}

		final Dimension screenDimensions = Toolkit.getDefaultToolkit().getScreenSize();
		testFrame.setLocation(screenDimensions.width / 16,screenDimensions.height / 14);

		final Insets insets = testFrame.getInsets();
		testFrame.setSize(1200 + insets.left + insets.right, 400 + insets.top + 250 + insets.bottom);

		testFrame.setResizable(false);

		testFrame.getContentPane().setBackground(new Color(75, 0, 130));

		testFrame.setLayout(new BorderLayout());
		return testFrame;
	}

	private static JButton createSubmitAnswersButton() {
		final JButton submitAnswers = new JButton("Submit Answers");

		submitAnswers.setVisible(true);
		submitAnswers.setBorder(new EmptyBorder(10, 400, 10, 400));

		return submitAnswers;
	}

	private static JPanel createInstructionsPanel() {
		final JPanel instructionsPanel = new JPanel();

		instructionsPanel.setBackground(new Color(75, 0, 130));
		instructionsPanel.setLayout(new BorderLayout());

		instructionsPanel.add(new JLabel("Some Instructions"), BorderLayout.CENTER);

		return instructionsPanel;
	}

	private static JPanel createContentPanel() {
		final JPanel testContentPanel = new JPanel();

		testContentPanel.setBackground(new Color(75, 0, 130));
		testContentPanel.setSize(new Dimension(900,2060));
		testContentPanel.setPreferredSize(new Dimension(900, 2060));
		testContentPanel.setLayout(new BorderLayout());

		return testContentPanel;
	}
}