package senseiTests.domainsTest;

import java.awt.CardLayout;
import javax.swing.Box;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 * Panel just showing a label for the field concept, and an uneditable edit component
 * for the field value. It includes the option to be disable (make unvisible) without
 * changing the component size
 */
class FieldPanel extends JPanel
{
  /**
   * Constructor
   */
  public FieldPanel(String concept, int columns)
  {
    super(new CardLayout());
    add(createValidPanel(concept, columns),"1");//string not used
    add(new JPanel(),"0");
  }

  public void makeUnvisible()
  {
    ((CardLayout) getLayout()).last(this);
  }

  public void makeVisible()
  {
    ((CardLayout) getLayout()).first(this);
  }

  public void displayIfVisible(String what)
  {
    SwingThreadedChanger.setText(value, what);
  }

  public void display(String what)
  {
    makeVisible();
    displayIfVisible(what);
  }

  private JPanel createValidPanel(String concept, int columns)
  {
    value = new JTextField(columns);
    value.setEditable(false);
    JPanel ret = new JPanel();
    Box boxPhase = Box.createHorizontalBox();
    boxPhase.add(new JLabel(concept));
    boxPhase.add(value);
    ret.add(boxPhase);
    return ret;
  }

  JTextField value;

};