@Override
  public boolean isModified() {
    try {
      RunnerAndConfigurationSettings original = getSettings();

      final RunManagerImpl runManager = ((RunnerAndConfigurationSettingsImpl)original).getManager();
      if (!original.isTemplate() && !runManager.hasSettings(original)) {
        return true;
      }

      if (isSpecificallyModified()) {
        return true;
      }
      SettingsEditor<RunnerAndConfigurationSettings> editor = getEditor();
      if (editor instanceof ConfigurationSettingsEditorWrapper && !((ConfigurationSettingsEditorWrapper)editor).supportsSnapshots()) {
        return super.isModified();
      }
      if (!getEditor().isReadyForApply()) {
        return true;
      }
      RunnerAndConfigurationSettings snapshot = getSnapshot();
      Element originalXml = ((SerializableScheme)original).writeScheme();
      Element snapshotXml = ((SerializableScheme)snapshot).writeScheme();
      return !JDOMUtil.areElementsEqual(originalXml, snapshotXml);
    }
    catch (ConfigurationException e) {
      //ignore
    }
    return super.isModified();
  }
@Override
  public boolean isModified()