package io.github.rowak.nanoleafdesktop.ui.dialog;

import java.awt.Component;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;

import io.github.rowak.nanoleafdesktop.ui.button.ModernButton;
import io.github.rowak.nanoleafdesktop.ui.textfield.ModernTextField;

public class DoubleEntryDialog extends BasicDialog
{
	private JTextField entry1, entry2;

	public DoubleEntryDialog(Component parent, String entry1Label,
			String entry2Label, String buttonLabel, ActionListener buttonListener)
	{
		super();
		
		entry1 = new ModernTextField(entry1Label);
		entry1.addFocusListener(new TextFieldFocusListener(entry1));
		contentPanel.add(entry1, "cell 0 1, grow, gapx 2 2");
		
		entry2 = new ModernTextField(entry2Label);
		entry2.addFocusListener(new TextFieldFocusListener(entry2));
		contentPanel.add(entry2, "cell 0 2, grow, gapx 2 2");
		
		JButton btnConfirm = new ModernButton(buttonLabel);
		btnConfirm.setFont(new Font("Tahoma", Font.PLAIN, 18));
		btnConfirm.addActionListener(buttonListener);
		contentPanel.add(btnConfirm, "cell 0 4, alignx center");
		
		JLabel spacer = new JLabel(" ");
		contentPanel.add(spacer, "cell 0 5");
		
		finalize(parent);
		
		btnConfirm.requestFocus();
	}
	
	public JTextField getEntry1()
	{
		return entry1;
	}
	
	public JTextField getEntry2()
	{
		return entry2;
	}
	
	private class TextFieldFocusListener extends FocusAdapter
	{
		String defaultText;
		
		public TextFieldFocusListener(JTextField parent)
		{
			defaultText = parent.getText();
		}
		
		@Override
		public void focusGained(FocusEvent e)
		{
			JTextField entry = (JTextField)e.getSource();
			if (entry.getText().equals(defaultText))
			{
				entry.setText("");
			}
		}
		
		@Override
		public void focusLost(FocusEvent e)
		{
			JTextField entry = (JTextField)e.getSource();
			if (entry.getText().equals(""))
			{
				entry.setText(defaultText);
			}
		}
	}
}