Klasa pola
Klasa abstrakcyjna dla pola z możliwością edycji.
Podpis:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Implementacje: IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Zespoły
Zespół | Modyfikatory | Opis |
---|---|---|
(konstruktor)(wartość, walidator, konfiguracja) | Tworzy nową instancję klasy Field |
Właściwości
Właściwość | Modyfikatory | Typ | Opis |
---|---|---|---|
borderRect_ | protected |
SVGRectElement | wartość null | Element obramowania SVG wyrenderowanego pola. |
clickTarget_ | protected |
Element | wartość null | Element, z którym jest powiązany moduł obsługi kliknięć. |
constants_ | protected |
ConstantProvider | wartość null | Stałe powiązane z mechanizmem renderowania bloku źródłowego. |
Kursor | ciąg znaków | Styl kursora myszy na obszarze interaktywnym, który uruchamia edytor. | |
DEFAULT_VALUE | T | wartość null | Aby zastąpić wartość domyślną ustawioną w **Pola**, bezpośrednio zaktualizuj prototyp. Przykład: |
|
MOŻLIWOŚĆ EDYTOWANIA | wartość logiczna | Pola, które można edytować, zazwyczaj mają interfejs, który wskazuje, że można je edytować. Zostaną one również zapisane przez serializator. | |
enabled_ | protected |
wartość logiczna | Czy wartość pola można zmienić za pomocą edytora na edytowalnym bloku? |
fieldGroup_ | protected |
SVGGElement | wartość null | Element grupy SVG wyrenderowanego pola. |
isDirty_ | protected |
wartość logiczna | Czy ten blok wymaga ponownego renderowania? |
maxDisplayLength | liczba | Maksymalna liczba znaków tekstu do wyświetlenia przed dodaniem wielokropka. | |
name? | ciąg znaków | (Opcjonalnie) Nazwa pola. Unikalny w ramach każdego bloku. Etykiety statyczne zazwyczaj nie mają nazwy. | |
NBSP |
|
(nie zadeklarowano) | Spacja nierozdzielająca. |
SERIALIZACJA | wartość logiczna | Pola możliwe do serializacji są zapisywane przez serializator, a pola nieserializacyjne nie. Pola edytowalne powinny być też serializowalne. Domyślnie tak nie jest, dlatego funkcja SERIALIZABLE jest zgodna wstecznie. | |
size_ | protected |
Rozmiar | |
SKIP_SETUP |
|
unikalny symbol | Wartość używana do sygnalizowania, że konstruktor pola *nie* powinien ustawiać wartości pola ani uruchamiać konfiguracji setup_ i powinna zezwalać na to podklasie. |
sourceBlock_ | protected |
Zablokuj | wartość null | Zablokuj to pole, z którym jest dołączone. Adres zaczyna się od wartości null, a następnie jest ustawiany jako init. |
textContent_ | protected |
Tekst | wartość null | Element treści tekstowej wyrenderowanego pola. |
textElement_ | protected |
SVGTextElement | wartość null | Element tekstowy SVG wyrenderowanego pola. |
validator_ | protected |
FieldValidator<T> | wartość null | Funkcja weryfikacji jest wywoływana, gdy użytkownik edytuje pole, które można edytować. |
value_ | protected |
T | wartość null | |
visible_ | protected |
wartość logiczna | Czy pole jest widoczne czy ukryte z powodu zwinięcia bloku? |
Metody
Metoda | Modyfikatory | Opis |
---|---|---|
applyColour() | Aktualizuje pole, aby pasowało do koloru/stylu bloku. Można go stosować w podklasach innych niż abstrakcyjne, jeśli kolor pola zależy od koloru bryły. Jest ona automatycznie wywoływana w odpowiednich momentach, na przykład po zmianie nadrzędnego bloku lub mechanizmu renderowania. Więcej informacji znajdziesz w dokumentacji pól lub w polu FieldDropdown (przykład). |
|
bindEvents_() | protected |
Powiąż zdarzenia z polem. Można ją zastąpić przez podklasy, jeśli potrzebują niestandardowej obsługi danych wejściowych. |
configure_(config) | protected |
Przetwórz mapę konfiguracji przekazaną do pola. |
createBorderRect_() | protected |
Utwórz element prostokątny obramowania. Nie należy zastępować przez podklasy. Zamiast tego zmodyfikuj wynik tej funkcji w initView lub utwórz osobną funkcję do wywołania. |
createTextElement_() | protected |
Utwórz element tekstowy pola. Nie należy zastępować przez podklasy. Zamiast tego zmodyfikuj wynik tej funkcji w initView lub utwórz osobną funkcję do wywołania. |
doClassValidation_(newValue) | protected |
Sprawdź zmiany wartości pola przed ich określeniem. Przykład implementacji podklasy znajdziesz w **FieldDropdown**. **UWAGA:** weryfikacja zwraca 1 opcję między |
doClassValidation_(newValue) | protected |
|
doValueInvalid_(_invalidValue, _fireChangeEvent) | protected |
Służy do powiadamiania pola o wprowadzeniu nieprawidłowej wartości. Można ją zastępować przez podklasy – patrz FieldTextInput. Domyślnie brak działania. |
doValueUpdate_(newValue) | protected |
Służy do aktualizowania wartości pola. Może być zastępowana przez podklasy w celu niestandardowego przechowywania wartości lub aktualizowania elementów zewnętrznych. |
fromJson(_options) | static |
W podklasach należy ponownie wdrożyć tę metodę, aby utworzyć podklasę Field na podstawie obiektu argumentu JSON. Jeśli ta podklasa nie zastąpiła tej metody, próba zarejestrowania podklasy pola w FieldRegistry jest błędem. |
getAbsoluteXY_() | protected |
Zwraca współrzędne bezwzględne lewego górnego rogu tego pola. Punkt początkowy (0,0) to lewy górny róg treści strony. |
getBorderRect() | protected |
Pobiera element prostokąta obramowania. |
getClickTarget_() | protected |
Element, z którym ma być powiązany moduł obsługi kliknięcia. Jeśli nie zostanie ustawiony bezpośrednio, domyślnie będzie używany główny element SVG pola. Gdy klikniesz ten element w polu, które można edytować, otworzy się edytor. |
getConstants() | Pobierz dostawcę stałej mechanizmu renderowania. | |
getDisplayText_() | protected |
Pobierz z tego pola tekst do wyświetlenia na bryle. Może różnić się od getText ze względu na wielokropek i inne formatowanie. |
getFlipRtl() | Zwraca, czy należy odwrócić pole w zapisie od prawej do lewej. | |
getSize() | Zwraca wysokość i szerokość pola. *Ogólnie* powinno to być jedyne miejsce, z którego wywoływane jest renderowanie_. |
|
getSourceBlock() | Pobierz blok, do którego jest dołączone to pole. | |
getSvgRoot() | Pobiera element grupy dla tego pola z możliwością edycji. Służy do pomiaru rozmiaru i pozycjonowania. | |
getText_() | protected |
Element przykuwający uwagę programisty do zastąpienia zwracanego tekstu w tym polu. Zastąp, jeśli tekstowa reprezentacja wartości tego pola nie jest tylko ciągiem znaków jej wartości. Zwróć wartość null, aby ośrodek używać rzutowania ciągu znaków. |
getText() | Skopiuj tekst z tego pola. Zastąp getText_, by uzyskać inne działanie niż zwykłe przesyłanie wartości do ciągu znaków. | |
getTextContent() | protected |
Pobiera zawartość tekstową. |
getTextElement() | protected |
Pobiera element tekstowy. |
getTooltip() | Zwraca tekst etykietki dla tego pola. | |
getValidator() | Pobiera funkcję weryfikacji w przypadku pól do edycji lub wartość null, jeśli nie jest ustawiona. | |
getValue() | Pobierz aktualną wartość pola. | |
initModel() | Inicjuje model pola po jego zainstalowaniu w bloku. Domyślnie brak działania. | |
initView() | protected |
Utwórz UI blokowania dla tego pola. |
isClickable() | Sprawdź, czy to pole definiuje funkcję showEditor_. | |
isClickableInFlyout(autoClosingFlyout) | Sprawdź, czy pole powinno być klikalne, gdy bryła znajduje się w rozwiniętym menu. Domyślnie pola są klikalne w zawsze otwartych okienkach, na przykład w prostym narzędziu, ale nie w automatycznie zamykanych arkuszach, takich jak przybory kategorii. Podklasy mogą zastąpić tę funkcję, aby zmienić to zachowanie. Pamiętaj, że aby ta zmiana przyniosła skutek, isClickable musi też zwrócić wartość „prawda”. |
|
isCurrentlyEditable() | Sprawdź, czy to pole można obecnie edytować. Niektórych pól nie można edytować (np. etykiet tekstowych). Inne pola mogą mieć wartość EDITABLE, ale mogą znajdować się w nieedytowalnych blokach lub być obecnie wyłączone. | |
isEnabled() | Sprawdź, czy wartość tego pola można zmienić za pomocą edytora, gdy blok źródłowy jest możliwy do edycji. | |
isFullBlockField() | protected |
Określa, czy to pole powinno zajmować pełny blok. Zachowaj ostrożność przy zastępowaniu tej funkcji. Może ona nie działać zgodnie z oczekiwaniami, ponieważ zachowanie zostało zhakowane. Jeśli chcesz zastąpić tę funkcję, opublikuj na forum opis swojego zamierzonego działania, aby sprawdzić, czy jest inne podejście. |
isSerializable() | Sprawdź, czy to pole powinno być serializowane przez mechanizm renderowania XML. Obsługa logiki zgodności wstecznej i stanów niespójnych. | |
isTabNavigable() | Wskazuje, czy po polu można poruszać się po karcie. | |
isVisible() | Wskazuje, czy to pole z możliwością edycji jest widoczne. | |
loadLegacyState(callingClass, state) | Wczytuje podany stan za pomocą starych haków XML, jeśli powinny być używane. Zwraca wartość „true” (prawda), aby potwierdzić, że wczytywanie zostało ukończone. W przeciwnym razie zwraca wartość „false” (fałsz). | |
onLocationChange(_) | Informuje pole o zmianie lokalizacji. | |
onMouseDown_(e) | protected |
Obsługa zdarzenia wskaźnika w polu. |
onShortcut(_shortcut) | Obsługuje podany skrót klawiszowy. | |
positionBorderRect_() | protected |
Pozycja prostokąta obramowania pola po zmianie rozmiaru. |
positionTextElement_(xOffset, contentSzerokość) | protected |
Pozycja elementu tekstowego pola po zmianie rozmiaru. Dotyczy to zarówno pozycjonowania od prawej do lewej, jak i od lewej do prawej. |
render_() | protected |
Używana przez getSize() do przenoszenia/zmiany rozmiaru elementów DOM i uzyskania nowego rozmiaru. Tutaj należy wykonywać wszystkie renderowanie, które wpływają na rozmiar/kształt bloku, i powinny być aktywowane przez metodę getSize(). |
repositionForWindowResize() | Interfejs programisty umożliwiający zmianę pozycji obiektu WidgetDiv podczas zmiany rozmiaru okna. Musisz zdefiniować ten punkt zaczepienia, jeśli pole zawiera obiekt WidgetDiv, który musi zmieniać swoje położenie po zmianie rozmiaru okna. Na przykład pola do wprowadzania tekstu definiują ten punkt zaczepienia, dzięki czemu obiekt WidgetDiv może zmieniać swoje położenie po zdarzeniu zmiany rozmiaru okna. Jest to szczególnie ważne, gdy wejścia modalne są wyłączone, ponieważ urządzenia z Androidem będą uruchamiać zdarzenie zmiany rozmiaru okna po otwarciu klawiatury programowej. Jeśli chcesz, aby obiekt WidgetDiv się ukrywał zamiast zmieniać jego położenie, ustaw wartość false (fałsz). Jest to jego ustawienie domyślne. DropdownDivs obsługują już własną logikę pozycjonowania, więc nie musisz zastępować tej funkcji, jeśli pole ma tylko wartość DropdownDiv. |
|
saveLegacyState(callingClass) | protected |
Zwraca ciąg znaków stanu XML, jeśli powinien być używany. W przeciwnym razie zwraca wartość null, aby zasygnalizować, że pole powinno użyć własnej serializacji. |
setEnabled(enabled) | Określ, czy wartość tego pola można zmieniać za pomocą edytora, gdy blok źródłowy jest możliwy do edycji. | |
setSourceBlock(block) | Dołącz to pole do bryły. | |
setTooltip(newTip) | Ustawia etykietkę dla tego pola. | |
setValidator(handler) | Ustawia nową funkcję weryfikacji dla pól możliwych do edytowania lub usuwa wcześniej ustawiony walidator. Funkcja walidatora pobiera nową wartość pola i zwraca zweryfikowaną wartość. Zweryfikowaną wartością może być wartość wejściowa, zmodyfikowana wersja wartości wejściowej lub wartość null oznaczająca przerwanie zmiany. Jeśli funkcja nie zwróci niczego (lub zwraca nieokreśloną wartość), nowa wartość jest akceptowana jako prawidłowa. Umożliwia to korzystanie z pól, które korzystają ze zweryfikowanej funkcji jako powiadomienia o zmianie na poziomie pola. |
|
setValue(newValue, fireChangeEvent) | Umożliwia zmianę wartości w polu. Obsługuje weryfikację i zdarzenia. Zamiast tej metody powinny być zastępowane podklasy doClassValidation_ i doValueUpdate_. | |
showEditor_(_e) | protected |
Interfejs dewelopera do utworzenia edytora pola. Domyślnie nie jest to działanie i trzeba zmienić to ustawienie, aby utworzyć edytor. |
updateEditable() | Dodaj lub usuń interfejs wskazujący, czy to pole można edytować. | |
updateSize_(margin) | protected |
Zmienia rozmiar pola na podstawie tekstu. |