package kwic;

import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//import java.applet.Applet;
import java.util.*;

public class MasterControl extends JApplet implements ActionListener {

   private JTextArea text = new JTextArea(12,30);
   private JButton btnTransform = new JButton("Transform Input");
   private JButton clrTransform = new JButton("Clear All");
   private JTextArea report = new JTextArea(12,30);
private JScrollPane txtScrollPane = new JScrollPane(text);
private JScrollPane alphaScrollPane = new JScrollPane(report);
   public void init() {
      
FlowLayout layout = new FlowLayout();

	getContentPane().setLayout(layout);
      getContentPane().add(new JLabel("USER INPUT :",JLabel.LEFT),-1);
      
      getContentPane().add(txtScrollPane);
      getContentPane().add(btnTransform);
	getContentPane().add(clrTransform);
      getContentPane().add(new JLabel("ALPHABETIZED OUTPUT :",JLabel.LEFT),-1);
      btnTransform.addActionListener(this);
      clrTransform.addActionListener(this);
      getContentPane().add(alphaScrollPane);
//	getContentPane().setPreferredSize(new Dimension(100,200));
   } // end init

   public void actionPerformed(ActionEvent event) {
   	  
	  if((event.getActionCommand()).equals("Clear All")) {
		this.clear();
	  }
	  else {
	  	Input input = new Input();
        	LineStorage lineStorage = new LineStorage();
        	input.readInput(text,lineStorage);

        	ArrayList list = lineStorage.getLines();
System.out.println("Size : " + list.size());
        	CircularShift circularShift = new CircularShift();
        	circularShift.circularShift(lineStorage);
        
        	AlphabeticShifts alphabeticShifts = new AlphabeticShifts();
        	alphabeticShifts.sort(circularShift);
        
        	Output output = new Output();
        	output.display(report,alphabeticShifts.getSortedList());
	  }
      
   } // end actionPerformed

   private void clear() {
	text.setText("");
	report.setText("");
   }
}
