public boolean updateDescription(boolean modified) {
    EditorColorsScheme scheme = myOptions.getSelectedScheme();

    if (modified
        && (ColorAndFontOptions.isReadOnly(scheme) || ColorSettingsUtil.isSharedScheme(scheme))) {
      showReadOnlyMessage(this, ColorSettingsUtil.isSharedScheme(scheme));
      return false;
    }

    myDispatcher.getMulticaster().fontChanged();

    return true;
  }
  private static void initDescriptions(
      @NotNull ColorAndFontDescriptorsProvider provider,
      @NotNull List<EditorSchemeAttributeDescriptor> descriptions,
      @NotNull MyColorScheme scheme) {
    String group = provider.getDisplayName();
    List<AttributesDescriptor> attributeDescriptors =
        ColorSettingsUtil.getAllAttributeDescriptors(provider);
    for (AttributesDescriptor descriptor : attributeDescriptors) {
      addSchemedDescription(
          descriptions,
          descriptor.getDisplayName(),
          group,
          descriptor.getKey(),
          scheme,
          null,
          null);
    }

    ColorDescriptor[] colorDescriptors = provider.getColorDescriptors();
    for (ColorDescriptor descriptor : colorDescriptors) {
      ColorKey back =
          descriptor.getKind() == ColorDescriptor.Kind.BACKGROUND ? descriptor.getKey() : null;
      ColorKey fore =
          descriptor.getKind() == ColorDescriptor.Kind.FOREGROUND ? descriptor.getKey() : null;
      addEditorSettingDescription(
          descriptions, descriptor.getDisplayName(), group, back, fore, scheme);
    }
  }
 public boolean currentSchemeIsShared() {
   return ColorSettingsUtil.isSharedScheme(mySelectedScheme);
 }