Menedżer edycji opisu
Menedżer edycji opisu jest komponentem, dostarczanym przez Silverlight Features. Może on działać dzięki wzajemnej wymianie danych z AQQ. Komponent ten powinien być umieszczony w pliku Contacts/User.htm. Wyznaczają go jednoznacznie elementy HTML o unikatowych identyfikatorach. Kompozycja wizualna może decydować zatem nie tylko o wyglądzie, ale także o rozmieszczeniu i obecności poszczególnych składników menedżera.

Składnik menedżera Unikatowy identyfikator (#)
Przycisk narzędziowy (wzorzec)
Ten składnik jest obligatoryjny.
-s-descript-tool
Główny licznik znaków -s-descript-counter
Poboczne liczniki znaków -s-descript-counters
Pole tekstowe
Ten składnik jest obligatoryjny.
-s-descript-textarea
Nagłówek z informacjami o profilu
Ten składnik jest obligatoryjny.
-s-profile-header
Kontener kontenera aktualnego opisui kontenera pola tekstowego -s-descript-container
Kontener aktualnego opisu -s-descript-current
Kontener pola tekstowego -s-descript-modified

Element o identyfikatorze #-s-descript-tool stanowi wzorzec przycisku narzędziowego. Element ten powinien posiadać atrybut data-script, w którym wpisane będzie ciało funkcji JavaScript, która będzie wykonywana podczas klonowania wzorca na właściwe przyciski narzędziowe. Funkcja ta wywoływana będzie z kilkoma parametrami.

Składnik przycisku Nazwa parametru funkcji Typ parametru
Etykieta tekstowa SF_TITLE string
Akcja JavaScript SF_ACTION function
Ścieżka do pliku ikony SF_ICON string
Auto-wysokość
Aby pole tekstowe automatycznie się rozszerzało w pionie w miarę wpisywania do niego tekstu, nadaj mu atrybut data-resize. Wówczas atrybut rows będzie oznaczał minimalną liczbę wierszy, jaką może przybrać pole (jeżeli go nie określisz, będzie to 1).
Licznik znaków
Poboczne liczniki znaków domyślnie nie wyświetlają się, wyświetlają się dopiero po przekroczeniu dopuszczalnej liczby znaków dla danej sieci. Są one rozmieszczone liniowo wg schematu: | [ikona] [licznik] | [ikona] [licznik]... Zarówno główny, jak i poboczne liczniki znaków domyślnie wskazują liczby znaków, które pozostały do osiągnięcia wartości granicznej. Każde z wymienionych w tym akapicie zachowań można zmienić poprzez stworzenie własnej funkcji JavaScript i nasłuchiwanie na zdarzenie własne Silverlight Features descriptinput. Więcej na ten temat dowiesz się w rozdziale o zdarzeniach własnych Silverlight Features.
Animacje
Aby działała animacja otwierania i zamykania menedżera, wszystkie trzy kontenery z końca powyższej tabeli muszą istnieć. Animacja musi być odpowiednio ustawiona po stronie stylów CSS, dlatego zaleca się korzystanie z predefiniowanych klas: .-s-descript-current, .-s-descript-modified, .-s-descript-counters, (nie mylić z unikatowymi identyfikatorami o tych samych nazwach) które odgórnie ustawiają pewne własności CSS dla odpowiednich elementów. Pomaga to uprościć kod po stronie kompozycji wizualnej, choć i tak zazwyczaj jest go stosunkowo dużo.

W trakcie odgrywania animacji otwierania i zamykania menedżera zmieniają się klasy nagłówka z informacjami o profilu. Dodawane, bądź usuwane są odpowiednie klasy, świadczące o przebiegającym w danej chwili czasu stanie. Aby zrozumieć, co oznaczają nazwy klas .-s-descript-state-2, .-s-descript-state-12 oraz .-s-descript-state-123, posłużymy się schematem.


Klasę .-s-descript-state-2 interpretujemy tak, że gdy nagłówek ją posiada, to menedżer znajduje się w stanie 2. Klasa .-s-descript-state-12 oznacza, że menedżer znajduje się w stanie 1 lub 2. Klasa .-s-descript-state-123 oznacza natomiast, że menedżer znajduje się w którymś ze stanów z wyjątkiem 0 (4). Jak zatem widać, klasy nie określają stanu jednoznacznie i początkowo może wydawać się w ogóle absurdalne, że tak właśnie zostało to opracowane. Ma to jednak ogromny sens i te właśnie trzy klasy pozwalają na całkowite opanowanie wszyst kich etapów transformacji menedżera.

Zauważ, że pewne etapy transformacji są wzajemnie odwracalne (na schemacie świadczą o tym strzałki ukierunkowane w obydwie strony). Dzieje się tak, ponieważ procedura otwierania menedżera (stan 1) może zostać przerwana, wskutek czego menedżer nie otworzy się. Powróci on wówczas do poprzedniego stanu, czyli 0. Dokładnie tak samo ma się sytuacja w przypadku przechodzenia między stanami 2 <> 3