/** Creates a new UI delegate for ribbon button. */
  public SubstanceCommandButtonUI(JCommandButton button) {
    super();
    this.backgroundDelegate = new ButtonBackgroundDelegate();

    this.overallRolloverModel = new DefaultButtonModel();
    this.overallRolloverModel.setArmed(false);
    this.overallRolloverModel.setSelected(false);
    this.overallRolloverModel.setPressed(false);
    this.overallRolloverModel.setRollover(false);
    this.overallRolloverModel.setEnabled(button.isEnabled());

    this.overallStateTransitionTracker =
        new StateTransitionTracker(button, this.overallRolloverModel);

    this.substanceVisualStateTracker = new CommandButtonVisualStateTracker();
  }