LetterTileController.java

package com.example.project.controllers.tileViewControllers;

import com.example.project.models.tiles.LetterTile;
import javafx.fxml.FXML;
import javafx.scene.CacheHint;
import javafx.scene.Node;
import javafx.scene.control.Label;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;

/**
 * Controls the layout of the letterUIModel. Which is a letter tile.
 */
public class LetterTileController extends TileController<LetterTile>
{
    @FXML
    private StackPane root;

    @FXML
    ImageView tileImage;

    @FXML
    Label letterLabel;

    @FXML
    Label valueLabel;

    public Node getRoot()
    {
        return root;
    }

    public LetterTile getModel(){
        return model;
    }

    @Override
    public void bind(LetterTile model)
    {
        this.model = model;
        letterLabel.setText(String.valueOf(model.getLetter()));
        valueLabel.setText(String.valueOf(model.getValue()));

        letterLabel.setCache(true);
        letterLabel.setCacheHint(CacheHint.QUALITY);

        valueLabel.setCache(true);
        valueLabel.setCacheHint(CacheHint.QUALITY);

        tileImage.setCache(true);
        tileImage.setCacheHint(CacheHint.QUALITY);
    }
}