code: @Override
      protected void readOnlyChanged()
      {
          for (AbstractCommand abstractCommand : getCommands())
          {
              if (isShowDetailSupported() && abstractCommand == getDetailCommand())
                  (abstractCommand).setEnabled(isEnabled());
              else
                  (abstractCommand).setEnabled(isEnabled() && !isReadOnly());
  
          }
      }
docs: Enable/disable the commands on readOnly change or valueModelChange