add method

PaletteEntry add(
  1. PaletteEntry entry
)

Registers entry in the palette, replacing whatever was registered under its name before.

Throws a StateError if entry belongs to a different palette.

Implementation

PaletteEntry add(PaletteEntry entry) {
  final palette = entry._palette;

  if (palette != null && palette != this) {
    throw StateError('This entry is registered in a different palette.');
  }

  // Ensured by the public `Palette` factory.
  final name = entry.name!;
  final replaced = _index[name];

  if (replaced != null) {
    _paints.remove(replaced);
    replaced._palette = null;
  }

  entry._palette = this;
  _insert(entry);
  _index[name] = entry;
  return entry;
}