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 javax.swing.JSpinner;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
	/**
	 * Информатика, 8 клас, издателство Просвета, 2017
	 * Автори: Светла Бойчева, Николина Николова, Елиза Стефанова, Антон Денев
	 * Урок 3.5. ТЕСТВАНЕ И ВЕРИФИКАЦИЯ НА ПРОГРАМА
	 * Задача: RxC001 моли свой приятел да му направи приложение Rocket, 
	 * което рисува ракета, която лети в небето и когато се издига от нея
	 * излиза огромен блясък. Иска освен това да може да се рисуват и малки,
	 * и големи, и огромни ракети.
	 * 
	 * Вариант 1. Открийте и коригирайте грешките!
	 */
public class ShuttleForm extends JFrame {

	private JPanel contentPane;



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

	/**
	 * Create the frame.
	 */
	public ShuttleForm() {
		setTitle("\u0420\u0430\u043A\u0435\u0442\u0430");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 501);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JSpinner spnZoom = new JSpinner();
		spnZoom.setBounds(66, 10, 29, 20);
		contentPane.add(spnZoom);
		
		JLabel lblZoom = new JLabel("Zoom:");
		lblZoom.setBounds(10, 13, 46, 14);
		contentPane.add(lblZoom);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(10, 41, 414, 410);
		contentPane.add(scrollPane);
		
		JTextArea txtDrawPane = new JTextArea();
		scrollPane.setViewportView(txtDrawPane);
		
		JButton btnDraw = new JButton("Draw");
		btnDraw.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				//изчистване на текстовата област
				txtDrawPane.setText("");
				
				// коефициент за мащабиране
				int zoom = (int)spnZoom.getValue()*2;
				
				// брой наклонени линии
				int slashes = 1;
				
				// брой символи на ред
				int symbolsPerRow = 12+zoom;
				
				// изчертаване на върха на ракетата
				for(int row = 0; row < 4+zoom; row++) 
				{
 					int spaces = symbolsPerRow/2 - (slashes + 1);
					for(int s = 0; s<spaces; s++)
						txtDrawPane.append("  ");
					for(int s = 0; s<slashes; s++)
						txtDrawPane.append("/ ");
					txtDrawPane.append("* * ");
					for(int s = 0; s<slashes; s++)
						txtDrawPane.append("\\ ");
					slashes++;
					txtDrawPane.append("\n");
				}
				
				// изчертаване на корпуса на ракетата
				for(int element = 0; element < 5; element++)
				{
					if(element % 2 == 0)
					{
						txtDrawPane.append("+");
						for(int i = 0; i<symbolsPerRow-2; i++)
							txtDrawPane.append(i%2==0 ? "=" : "*");
						txtDrawPane.append("+\n");
					}
					else{
						for(int row = 0; row < 6; row++)
						{
							for(int col = 0; col < symbolsPerRow; col++)
							{
								if(col == 0 || col == symbolsPerRow - 1)
									txtDrawPane.append("| ");
								else
									txtDrawPane.append(". ");
							}
							txtDrawPane.append("\n");
						}
					}
				}
				
				// изчертаване на пламъка
				slashes = 1;
				for(int row = 0; row < 4+zoom; row++)
				{
					int spaces = symbolsPerRow/2 - (slashes + 1);
					for(int s = 0; s<spaces; s++)
						txtDrawPane.append("  ");
					for(int s = 0; s<slashes; s++)
						txtDrawPane.append("/ ");
					txtDrawPane.append("* * ");
					for(int s = 0; s<slashes; s++)
						txtDrawPane.append("\\ ");
					slashes++;
					txtDrawPane.append("\n");
				}

			}
		});
		btnDraw.setBounds(105, 9, 89, 23);
		contentPane.add(btnDraw);
		
		
	}
}
