import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.util.*;

public class CSD 
{
  private WComponent container;
  
  private JLabel title = new JLabel("Current Survey");
  private JLabel surveyLabel = new JLabel("Survey:");
  private JLabel stimLabel = new JLabel("Stimulus:");
  
  private JTextField survey = new JTextField();
  private JTextField stim = new JTextField();
  
  private Dimension csdDimension = new Dimension(375,75);
  private Dimension titleDimension = new Dimension(100,20);
  private Dimension labelDimension = new Dimension(75,20);
  private Dimension textDimension = new Dimension(285,20); 
  
  /**
   * Default Constructor
   */
  public CSD() 
  {
  } 
  
  /**
   * Current Survey Display Constructor
   */
  public CSD(JLayeredPane layers, BevelBorder bevel)
  {
    //********************************************************
    //Instantiate the container component for this region.
    //********************************************************
    container = new WComponent();
    
    //***********************************
    //Setup properties of the SRPole
    //***********************************
    
    container.setSize(csdDimension);
    container.setBorder(bevel);
    container.setBounds(410,110,(int)csdDimension.getWidth(),(int)csdDimension.getHeight());
    title.setBounds(415,110,(int)titleDimension.getWidth(),(int)titleDimension.getHeight());
    //container.setMinimumSize(containerDimension);
    //container.setMaximumSize(containerDimension);
    //container.setPreferredSize(containerDimension);
    
    surveyLabel.setBounds(415,130,(int)labelDimension.getWidth(),(int)labelDimension.getHeight());
    survey.setBackground(Color.white);
    survey.setSize(textDimension);
    survey.setBorder(bevel);
    survey.setEditable(false);
    survey.setBounds(495,130,(int)textDimension.getWidth(),(int)textDimension.getHeight());
    //survey.setMinimumSize(textDimension);
    //survey.setMaximumSize(textDimension);
    //survey.setPreferredSize(textDimension);
    
    stimLabel.setBounds(415,155,(int)labelDimension.getWidth(),(int)labelDimension.getHeight());
    stim.setBackground(Color.white);
    stim.setSize(textDimension);
    stim.setBorder(bevel);
    stim.setEditable(false);
    stim.setBounds(495,155,(int)textDimension.getWidth(),(int)textDimension.getHeight());
    //stim.setMinimumSize(textDimension);
    //stim.setMaximumSize(textDimension);
    //stim.setPreferredSize(textDimension);
    
    //********************************************************
    //Include the components and set their layers
    //********************************************************
    
    layers.add(container);
    layers.setLayer(container,1);
    layers.add(title);
    layers.setLayer(title,2);
    
    layers.add(surveyLabel);
    layers.setLayer(surveyLabel,2);
    layers.add(stimLabel);
    layers.setLayer(stimLabel,2);
    
    layers.add(survey);
    layers.setLayer(survey,2);
    layers.add(stim);
    layers.setLayer(stim,2);
    
    //********************************
    //Set the Areas to a visible state
    //********************************
    
    container.setVisible(true);
    title.setVisible(true);
    surveyLabel.setVisible(true);
    survey.setVisible(true);
    stimLabel.setVisible(true);
    stim.setVisible(true);
  }

  //CHEAP HACK - Used to override layout problem considerations until layout management is centralized.
  /**
   * Current Survey Display Constructor
   */
  public CSD(JLayeredPane layers, BevelBorder bevel, int notUsed)
  {
    //********************************************************
    //Instantiate the container component for this region.
    //********************************************************
    container = new WComponent();
    
    //***********************************
    //Setup properties of the SRPole
    //***********************************
    
    container.setSize(csdDimension);
    container.setBorder(bevel);
    container.setBounds(410,5,(int)csdDimension.getWidth(),(int)csdDimension.getHeight());
    title.setBounds(415,5,(int)titleDimension.getWidth(),(int)titleDimension.getHeight());
    //container.setMinimumSize(containerDimension);
    //container.setMaximumSize(containerDimension);
    //container.setPreferredSize(containerDimension);
    
    surveyLabel.setBounds(415,25,(int)labelDimension.getWidth(),(int)labelDimension.getHeight());
    survey.setBackground(Color.white);
    survey.setSize(textDimension);
    survey.setBorder(bevel);
    survey.setEditable(false);
    survey.setBounds(495,25,(int)textDimension.getWidth(),(int)textDimension.getHeight());
    //survey.setMinimumSize(textDimension);
    //survey.setMaximumSize(textDimension);
    //survey.setPreferredSize(textDimension);
    
    stimLabel.setBounds(415,50,(int)labelDimension.getWidth(),(int)labelDimension.getHeight());
    stim.setBackground(Color.white);
    stim.setSize(textDimension);
    stim.setBorder(bevel);
    stim.setEditable(false);
    stim.setBounds(495,50,(int)textDimension.getWidth(),(int)textDimension.getHeight());
    //stim.setMinimumSize(textDimension);
    //stim.setMaximumSize(textDimension);
    //stim.setPreferredSize(textDimension);
    
    //********************************************************
    //Include the components and set their layers
    //********************************************************
    
    layers.add(container);
    layers.setLayer(container,1);
    layers.add(title);
    layers.setLayer(title,2);
    
    layers.add(surveyLabel);
    layers.setLayer(surveyLabel,2);
    layers.add(stimLabel);
    layers.setLayer(stimLabel,2);
    
    layers.add(survey);
    layers.setLayer(survey,2);
    layers.add(stim);
    layers.setLayer(stim,2);
    
    //********************************
    //Set the Areas to a visible state
    //********************************
    
    container.setVisible(true);
    title.setVisible(true);
    surveyLabel.setVisible(true);
    survey.setVisible(true);
    stimLabel.setVisible(true);
    stim.setVisible(true);
  }

  public void setSurvey(String text)
  {
    survey.setText(text);
  }

  public void setStim(String text)
  {
    stim.setText(text);
  }
  
  public String getSurvey()
  {
    return survey.getText();
  }
  
  public String getStim()
  {
    return stim.getText();
  }
  
  public void setText(String stimText, String surveyText)
  {
    survey.setText(surveyText);
    stim.setText(stimText);
  }
  
  public void reset()
  {
    survey.setText("");
    stim.setText("");
  }
}
