import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.shape.StrokeType;
import javafx.scene.text.Font;
import javafx.scene.text.Text;

public class CardView extends StackPane {
	public static final double WIDTH = 70;
	public static final double HEIGHT = 100;

	private Rectangle face_;
	private Text label_;

	public CardView ( String text, boolean red ) {
		face_ = new Rectangle(WIDTH,HEIGHT);
		face_.setArcWidth(10);
		face_.setArcHeight(10);
		face_.setStrokeType(StrokeType.INSIDE);
		face_.setStroke(Color.GRAY);

		label_ = new Text();
		label_.setFont(Font.font(20));

		getChildren().addAll(face_,label_);
		setMinSize(WIDTH,HEIGHT);
		setPrefSize(WIDTH,HEIGHT);
		setMaxSize(WIDTH,HEIGHT);
		setCard(text,red);
		setFaceUp(true);
	}

	public void setCard ( String text, boolean red ) {
		label_.setText(text);
		if ( red ) {
			label_.setFill(Color.CRIMSON);
		} else {
			label_.setFill(Color.BLACK);
		}
	}

	public void setFaceUp ( boolean faceUp ) {
		label_.setVisible(faceUp);
		if ( faceUp ) {
			face_.setFill(Color.WHITE);
		} else {
			face_.setFill(Color.STEELBLUE);
		}
	}

	public void setHighlighted ( boolean on ) {
		if ( on ) {
			face_.setStroke(Color.DODGERBLUE);
			face_.setStrokeWidth(4);
		} else {
			face_.setStroke(Color.GRAY);
			face_.setStrokeWidth(1);
		}
	}
}
