net.ranides.assira.text.format
Class AnsiColorScheme

java.lang.Object
  extended by net.ranides.assira.text.format.AnsiColorScheme
Direct Known Subclasses:
AnsiColorArray, AnsiColorMap

public abstract class AnsiColorScheme
extends Object

Schemat przyporządkowujący graficzne reprezentacje kolorów do numerów, które są przechowywane w obiektach typu AnsiCharSequence. Warto podkreślić, że schemat oddzielnie dla każdego numeru przechowuje kolor tekstu oraz tła. Oznacza to, że ten sam numer może oznaczać inny kolor, zależnie od tego, czy zostanie zwrócony przez AnsiAttr.getFore() czy przez AnsiAttr.getBack().

Uzasadnienie takiej decyzji:
jakkolwiek może się to wydawać nienaturalne (w końcu AnsiCharSequence przechowuje oddzielnie numer tła oraz tekstu), to pozwala to na stworzenie palet, w których "logiczne" kolory są numerowane identycznie (np liczbami od 0 do 16) zarówno dla tła, jak i tekstu. Ale kolory te są inaczej reprezentowane na ekranie, np tło zawiera stosunkowo jasne, a tekst stosunkowo ciemne odcienie tej samej barwy. Bez takiego rozróżnienia na poziomie schematu należałoby wprowadzić to rozróżnienie już na poziomie numeracji. To znaczy ponumerować kolory od 0 do 32, a następnie ręcznie pilnować odpowiedniego indeksowania podczas pracy z tekstem, żeby przypadkiem tekst nie dostał numeru 27, a tło 11.

Author:
ranides

Nested Class Summary
static interface AnsiColorScheme.ColorAttr
          Element reprezentujący parę barw przypisanych do danego indeksu w schemacie.
 
Field Summary
static AnsiColorScheme EMPTY
          Pusty schemat kolorów.
 
Constructor Summary
AnsiColorScheme()
           
 
Method Summary
static AnsiColorScheme copy(AnsiColorScheme scheme)
          Kopiuje podany schemat kolorów
 Color getBackColor()
          Zwraca domyślny kolor tła (kolor o numerze 0).
abstract  Color getBackColor(int index)
          Zwraca kolor tła o podanym indeksie.
 Color getForeColor()
          Zwraca domyślny kolor tekstu (kolor o numerze 0).
abstract  Color getForeColor(int index)
          Zwraca kolor tekstu o podanym indeksie.
static AnsiColorScheme make()
          Tworzy scheme o nieograniczonym rozmiarze, w którym można przypisać wartość do dowolnego klucza (ciąg kluczy nie musi być sekwencją).
static AnsiColorScheme make(Color back, Color fore)
          Tworzy scheme przechowujący pojedynczy atrybut pod indeksem 0.
static AnsiColorScheme make(int size)
          Tworzy scheme o ustalonym rozmiarze size, w którym można używać kluczy z zakresu [0...size].
 void setBackColor(Color value)
          Ustawia domyślny kolor tła (kolor o numerze 0).
abstract  void setBackColor(int index, Color value)
          Ustawia kolor tła o podanym indeksie.
 void setForeColor(Color value)
          Ustawia domyślny kolor tekstu (kolor o numerze 0).
abstract  void setForeColor(int index, Color value)
          Ustawia kolor tekstu o podanym indeksie.
abstract  Collection<AnsiColorScheme.ColorAttr> values()
          Zwraca kolekcję wszystkich kolorów zapisanych w schemacie.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EMPTY

public static final AnsiColorScheme EMPTY
Pusty schemat kolorów. Zwraca null dla każdej wartości.

Constructor Detail

AnsiColorScheme

public AnsiColorScheme()
Method Detail

values

public abstract Collection<AnsiColorScheme.ColorAttr> values()
Zwraca kolekcję wszystkich kolorów zapisanych w schemacie.

Returns:

getForeColor

public abstract Color getForeColor(int index)
Zwraca kolor tekstu o podanym indeksie.

Parameters:
index -
Returns:

getBackColor

public abstract Color getBackColor(int index)
Zwraca kolor tła o podanym indeksie.

Parameters:
index -
Returns:

setForeColor

public abstract void setForeColor(int index,
                                  Color value)
Ustawia kolor tekstu o podanym indeksie.

Parameters:
index -
value -

setBackColor

public abstract void setBackColor(int index,
                                  Color value)
Ustawia kolor tła o podanym indeksie.

Parameters:
index -
value -

getForeColor

public final Color getForeColor()
Zwraca domyślny kolor tekstu (kolor o numerze 0).

Returns:

getBackColor

public final Color getBackColor()
Zwraca domyślny kolor tła (kolor o numerze 0).

Returns:

setForeColor

public final void setForeColor(Color value)
Ustawia domyślny kolor tekstu (kolor o numerze 0).

Parameters:
value -

setBackColor

public final void setBackColor(Color value)
Ustawia domyślny kolor tła (kolor o numerze 0).

Parameters:
value -

copy

public static AnsiColorScheme copy(AnsiColorScheme scheme)
Kopiuje podany schemat kolorów

Parameters:
scheme -
Returns:

make

public static AnsiColorScheme make()
Tworzy scheme o nieograniczonym rozmiarze, w którym można przypisać wartość do dowolnego klucza (ciąg kluczy nie musi być sekwencją). Klucz 0 oznacza oczywiście (by convention) wartość domyślną.

Returns:

make

public static AnsiColorScheme make(int size)
Tworzy scheme o ustalonym rozmiarze size, w którym można używać kluczy z zakresu [0...size]. Klucz 0 oznacza oczywiście (by convention) wartość domyślną.

Parameters:
size -
Returns:

make

public static AnsiColorScheme make(Color back,
                                   Color fore)
Tworzy scheme przechowujący pojedynczy atrybut pod indeksem 0. Użycie innych kluczy jest dozwolone ale zawsze ma wpływ na wartość domyślną (prowadzi do niejednoznaczności).

Parameters:
back -
fore -
Returns:


Copyright © 2013. All Rights Reserved.