package edu.school;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.Color;
import javax.swing.JList;
import javax.swing.JLabel;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class CanoeingFrame extends JFrame {
	/**
	 * Информатика, 8 клас, издателство Просвета, 2017
	 * Автори: Светла Бойчева, Николина Николова, Елиза Стефанова, Антон Денев
	 * Урок 3.6.2.2. Търсене на минимална и максимална стойност в едномерен масив
	 * Задача: Учениците от едно училище участват в квалификациите за междуучилищно 
	 * спортно първенство. Класирането на участниците е от 0.5 до 20.0 точки, като не 
	 * са възможни равни резултати. Състезателят с най-много точки директно се класира
	 * за участие в първенството, а този с най-малко — отпада. Останалите състезатели 
	 * участват в допълнителни квалификации за избор на най-добрите от тях. Да се
	 * напише приложение, което при въведени резултати от квалификацията, извежда както 
	 * победителя, така и състезателя, който отпадаот участие в първенството.
	 * 
	 * Вариант 1. 
	 */
	
	private JPanel contentPane;
	private JList lstResults;
	private JLabel lblWinner;
	private JLabel lblLoser;
	
	
	// Резултати от квалификацията
	//double[] points = new double[8];
	double[] points = { 6.5, 4.0, 12.0, 11.5, 17.5, 4.5, 8.0, 7.0 };


	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					CanoeingFrame frame = new CanoeingFrame();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public CanoeingFrame() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 487, 256);
		contentPane = new JPanel();
		contentPane.setBackground(new Color(204, 255, 255));
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		lstResults = new JList();
		lstResults.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lstResults.setBounds(10, 47, 143, 154);
		contentPane.add(lstResults);

		JButton btnResults = new JButton("\u0420\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438");
		btnResults.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				DefaultListModel model = new DefaultListModel();
				for (int i = 0; i < points.length; i++) {
					String message = String.format("[%d]: %3.1f", i, points[i]);
					model.add(i, message);
				}

				lstResults.setModel(model);

			}
		});
		btnResults.setFont(new Font("Tahoma", Font.PLAIN, 14));
		btnResults.setBounds(10, 3, 143, 33);
		contentPane.add(btnResults);

		JButton btnWinner = new JButton("\u041F\u043E\u0431\u0435\u0434\u0438\u0442\u0435\u043B");
		btnWinner.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {

				// Намиране на максимален елемент на масив
				double maxValue = points[0];
				int maxIndex = 0;
				for (int i = 1; i < points.length; i++) {
					if (points[i] > maxValue) {
						maxIndex = i;
						maxValue = points[i];
					}
				}

				String message = "Класира се състезател [%d] с резултат %3.1f";
				lblWinner.setText(String.format(message, maxIndex, maxValue));

			}
		});
		btnWinner.setFont(new Font("Tahoma", Font.PLAIN, 14));
		btnWinner.setBounds(173, 47, 108, 33);
		contentPane.add(btnWinner);

		lblWinner = new JLabel("New label");
		lblWinner.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lblWinner.setBounds(173, 97, 288, 24);
		contentPane.add(lblWinner);
		
		JButton btnLoser = new JButton("\u041E\u0442\u043F\u0430\u0434\u043D\u0430\u043B");
		btnLoser.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
				// Намиране на минимален елемент на масив
				double minValue = points[0];
				int minIndex = 0;
				for (int i = 1; i < points.length; i++) {
					if (points[i] < minValue) {
						minIndex = i;
						minValue = points[i];
					}
				}
				
				String message = "Отпада състезател [%d] с резултат %3.1f";
				lblLoser.setText(String.format(message, minIndex, minValue));


			}
		});
		btnLoser.setFont(new Font("Tahoma", Font.PLAIN, 14));
		btnLoser.setBounds(173, 132, 108, 33);
		contentPane.add(btnLoser);
		
		lblLoser = new JLabel("New label");
		lblLoser.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lblLoser.setBounds(173, 177, 288, 24);
		contentPane.add(lblLoser);
	}
}
