@Override
    public void setState(OptionState state)
    {
        this.state = state;
        switch(this.state)
        {
            case NORMAL:
                this.description.setVisible(true);
                this.description.changeBackgroundColor(Color.yellow);
                this.setBorder(BorderFactory.createLineBorder(Color.BLACK));
                break;
            case HIDDEN_OCCUPY:
                //maybe do somekind of animation here
                this.description.setVisible(false);
                this.description.repaint();
                this.setBorder(null);
                this.contentPanel.repaint();
                break;
            case UNOCCUPIED:
                this.description.setVisible(true);
                this.description.changeBackgroundColor(Color.GRAY);
                this.setBorder(BorderFactory.createLineBorder(Color.BLACK));
                break;
            case CORRECT:
                this.description.setVisible(true);
                this.description.changeBackgroundColor(Color.GREEN);
                this.setBorder(BorderFactory.createLineBorder(Color.BLACK));
                break;
            case INCORRECT:
                this.description.setVisible(true);
                this.description.changeBackgroundColor(Color.RED);
                this.setBorder(BorderFactory.createLineBorder(Color.BLACK));
                break;
           case FINISHED:
                this.description.setVisible(true);
                this.description.changeBackgroundColor(Color.GREEN.darker());
                this.setBorder(BorderFactory.createLineBorder(Color.BLACK));
                break;
           case TRANSPARENT:
                this.setOpaque(false);
                break;
            default:
                break;
        }
    }