/**
 * 
 */
package view.tool.inputField;

import java.awt.Color;

import javax.swing.JScrollPane;
import javax.swing.text.Document;


/**
 * @author Alexis Caron
 *
 */
public class JValidScrollTextArea extends JScrollPane{
	/**
	 * 
	 */
	private static final long serialVersionUID = 9077271670084319146L;
	
	private JValidTextArea field;
	
	/**
	 * Constructeur
	 * @param text String
	 */
	private JValidScrollTextArea(JValidTextArea _field) {
		field = _field;
		field.setLineWrap(true);
		this.setViewportView(field);
		field.setDisabledTextColor(Color.BLACK);
	}
	
	/**
	 * @return default JValidScrollTextArea 
	 */
	public static JValidScrollTextArea JValidTextFieldWithoutText(int line_height){
		return new JValidScrollTextArea(JValidTextArea.JValidTextFieldWithoutText(line_height));
	}
	
	/**
	 * @param _text
	 * @return JValidScrollTextArea with text
	 */
	public static JValidScrollTextArea JValidTextFieldWithText(int line_height, String _text){
		return new JValidScrollTextArea(JValidTextArea.JValidTextFieldWithText(line_height,_text));
	}
	
	/**
	 * @param _allowedCaracters
	 * @return JValidScrollTextArea which allows only certain character
	 */
	public static JValidScrollTextArea JValidTextFieldAllowCertainCharacter(int line_height, String regex){
		return new JValidScrollTextArea(JValidTextArea.JValidTextFieldAllowCertainCharacter(line_height,regex));
	}
	
	/**
	 * @param _allowedCaracters
	 * @return JValidScrollTextArea which disallow certain character
	 */
	public static JValidScrollTextArea JValidTextFieldDisallowCertainCharacter(int line_height, String regex){
		return new JValidScrollTextArea(JValidTextArea.JValidTextFieldDisallowCertainCharacter(line_height,regex));
	}
	
	/**
	 * @param _allowedCaracters
	 * @param _text
	 * @return JValidScrollTextArea which allow certain character and has text
	 */
	public static JValidScrollTextArea JValidTextFieldWithTextAllowCertainCharacter(int line_height, String regex, String _text){
		return new JValidScrollTextArea(JValidTextArea.JValidTextFieldWithTextAllowCertainCharacter(line_height,regex, _text));
	}
	
	/**
	 * @param _allowedCaracters
	 * @param _text
	 * @return JValidScrollTextArea which disallow certain character and has text
	 */
	public static JValidScrollTextArea JValidTextFieldWithTextDisallowCertainCharacter(int line_height, String regex, String _text){
		return new JValidScrollTextArea(JValidTextArea.JValidTextFieldWithTextDisallowCertainCharacter(line_height,regex, _text));
	}
	
	/**
	 * @return String in TextArea
	 */
	public String getText(){
		return field.getText();
	}
	
	/**
	 * @return Document of the textarea
	 */
	public Document getDocument(){
		return field.getDocument();
	}
	
	/**
	 * @param text to set in TextArea
	 */
	public void setText(String text){
		field.setText(text);
	}
	
	@Override
	public void setEnabled(boolean enabled){
		field.setEnabled(enabled);
		field.setOpaque(enabled);
	}
}