package edu.school.triangle;

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

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.JButton;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
	/**
	 * Информатика, 8 клас, издателство Просвета, 2017 Автори: Светла Бойчева,
	 * Николина Николова, Елиза Стефанова, Антон Денев Урок 3.3.2. Условен
	 * оператор Задача:RxC001 трябва да се научи да решава задачи за триъгълник.
	 * Направете приложение Triangle, което по зададени ъгли на триъгълник
	 * определя различни негови свойства. Дали е:
	 *  • остроъгълен, тъпоъгълен, правоъгълен;
	 *  • равностранен, равнобедрен, разностранен. 
	 * Приложението трябва да прави проверка на коректността на входните данни. 
	 * Предполагаме, че ъглите се задават като цели числа в градуси.
	 * 
	 * Версия 1.
	 */

public class TriangleFrame extends JFrame {


	private JPanel contentPane;
	private JTextField txtAlpha;
	private JTextField txtGama;
	private JTextField txtBeta;
	private JButton btnCheck;
	private JLabel lblResult;

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

	/**
	 * Create the frame.
	 */
	public TriangleFrame() {
		setTitle("\u0422\u0440\u0438\u044A\u0433\u044A\u043B\u043D\u0438\u043A");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		JLabel lblNewLabel = new JLabel("C");
		lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lblNewLabel.setBounds(113, 11, 20, 33);
		contentPane.add(lblNewLabel);

		JLabel lblA = new JLabel("A");
		lblA.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lblA.setBounds(36, 121, 20, 33);
		contentPane.add(lblA);

		JLabel lblB = new JLabel("B");
		lblB.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lblB.setBounds(211, 121, 20, 33);
		contentPane.add(lblB);

		txtBeta = new JTextField();
		txtBeta.setHorizontalAlignment(SwingConstants.RIGHT);
		txtBeta.setFont(new Font("Tahoma", Font.PLAIN, 14));
		txtBeta.setBounds(96, 40, 50, 33);
		contentPane.add(txtBeta);
		txtBeta.setColumns(10);

		txtAlpha = new JTextField();
		txtAlpha.setHorizontalAlignment(SwingConstants.RIGHT);
		txtAlpha.setFont(new Font("Tahoma", Font.PLAIN, 14));
		txtAlpha.setColumns(10);
		txtAlpha.setBounds(51, 121, 50, 33);
		contentPane.add(txtAlpha);

		txtGama = new JTextField();
		txtGama.setHorizontalAlignment(SwingConstants.RIGHT);
		txtGama.setFont(new Font("Tahoma", Font.PLAIN, 14));
		txtGama.setColumns(10);
		txtGama.setBounds(157, 121, 50, 33);
		contentPane.add(txtGama);

		btnCheck = new JButton("\u041F\u0440\u043E\u0432\u0435\u0440\u0438");
		btnCheck.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {

				int alpha, beta, gama; // ъглите на триъгълника

				// проверка за коректност на входните данни
				try {
					alpha = Integer.parseInt(txtAlpha.getText());
					beta = Integer.parseInt(txtBeta.getText());
					gama = Integer.parseInt(txtGama.getText());
				} catch (NumberFormatException e) {
					// TODO Auto-generated catch block
					JOptionPane.showMessageDialog(null,
							"Некоректни входни данни!\n " + "Въведете цели числа в интервала (0,180),\n");
					return;
				}

				if (!(0 < alpha && alpha < 180 && 0 < beta && beta < 180 && 0 < gama && gama < 180
						&& 180 == alpha + beta + gama)) {
					JOptionPane.showMessageDialog(null, "Некоректни входни данни!\n "
							+ "Въведете цели числа в интервала (0,180),\n" + "чиято сума е точно 180 градуаса!");
					return;
				}

				// намиране на ъгъла с максимална стойност
				// чрез пълен условен оператор за намиране на максимума между
				// alpha и beta
				// и един кратък условен оператор за намиране на по-голямата
				// стойност измежду намерения
				// максимум и стойността на gama
				int max;

				if (alpha > beta) {
					max = alpha;
				} else {
					max = beta;
				}

				if (gama > max)
					max = gama;

				// съобщение за характеристиките на триъгълника
				String result = "Триъгълникът е ";

				// последователност от единичини кратки условни оператори
				// за определяне на типа на тригълника според ъглите му
				if (max == 90)
					result += "правоъгълен ";
				if (max > 90)
					result += "тъпоъгълен ";
				if (max < 90)
					result += "острооъгълен ";

				// последователност от единичини кратки условни оператори
				// за определяне на типа на тригълника според страните му
				if (alpha == beta && beta == gama)
					result += "и равностранен ";
				if (alpha == beta || beta == gama || alpha == gama)
					result += "и равнобедрен.";
				if (alpha != beta && beta != gama && alpha != gama)
					result += "и разностранен.";

				// извеждане на резултата в етикет
				lblResult.setText(result);

			}
		});
		btnCheck.setFont(new Font("Tahoma", Font.PLAIN, 14));
		btnCheck.setBounds(267, 58, 139, 56);
		contentPane.add(btnCheck);

		lblResult = new JLabel("");
		lblResult.setForeground(new Color(0, 0, 255));
		lblResult.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lblResult.setBounds(10, 188, 414, 47);
		contentPane.add(lblResult);
	}
}
