Klasa pola
Klasa abstrakcyjna pola z możliwością edytowania.
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) | Konstruuje nową instancję klasy Field |
Właściwości
Właściwość | Modyfikatory | Typ | Opis |
---|---|---|---|
borderRect_ | protected |
SVGRectElement | null | Element obramowania SVG renderowanego pola. |
clickTarget_ | protected |
Element | wartość null | Element, z którym jest powiązany moduł obsługi kliknięć. |
constants_ | protected |
ConstantProvider | null | Stałe powiązane z mechanizmem renderowania bloku źródłowego. |
KURSOR | string, | Ustaw styl kursora myszy po najechaniu na obszar interaktywny, który uruchamia edytor. | |
DEFAULT_VALUE | T | wartość null | Aby zastąpić wartość domyślną, która jest ustawiona w **polu**, bezpośrednio zaktualizuj prototyp. Przykład: |
|
MOŻLIWE DO EDYCJI | boolean | Pola, które można edytować, mają zwykle jakiś interfejs użytkownika, który wskazuje, że można je edytować. Zostaną one również zapisane przez serializator. | |
enabled_ | protected |
boolean | Czy wartość pola można zmienić za pomocą edytora na bloku z możliwością edycji? |
fieldGroup_ | protected |
SVGGElement | wartość null | Element grupy SVG wyrenderowanego pola. |
isDirty_ | protected |
boolean | Czy ten blok wymaga ponownego wyrenderowania? |
maxDisplayLength | Liczba | Maksymalna liczba znaków tekstu do wyświetlenia przed dodaniem wielokropka. | |
nazwa? | string, | (Opcjonalnie) Nazwa pola. Unikalny w każdym bloku. Etykiety statyczne zwykle nie mają nazw. | |
NBSP |
|
(nie zadeklarowano) | Spacja nierozdzielająca. |
SERIALIZACJA | boolean | Pola możliwe do serializacji są zapisywane przez serializator. Pola, które nie mogą być sserializowane, nie są zapisywane. Pola, które można edytować, również powinny mieć możliwość serializacji. Domyślnie tak nie jest, więc funkcja SERIALIZABLE jest zgodna wstecznie. | |
size_ | protected |
Rozmiar | |
SKIP_SETUP |
|
unikalny symbol | Wartość używana do sygnalizowania, kiedy konstruktor pola *nie* powinien ustawiać wartości pola ani uruchamiać konfiguracji_ oraz powinna zezwalać na to podklasie. |
sourceBlock_ | protected |
Zablokuj | wartość null | Zablokuj to pole, do którego jest dołączone to pole. Zaczyna się od wartości null, a następnie zostaje ustawiony w init. |
textContent_ | protected |
Tekst | wartość null | Element treści tekstowej wyrenderowanego pola. |
textElement_ | protected |
SVGTextElement | null | Element tekstowy SVG renderowanego pola. |
validator_ | protected |
FieldValidator<T> | null | Funkcja weryfikacji jest wywoływana, gdy użytkownik edytuje pole z możliwością edytowania. |
value_ | protected |
T | wartość null | |
visible_ | protected |
boolean | Czy pole jest widoczne czy ukryte z powodu zwiniętej bryły? |
Metody
Metoda | Modyfikatory | Opis |
---|---|---|
applyColour() | Aktualizuje pole, aby dopasować je do koloru/stylu bryły. Podklasy inne niż abstrakcyjne mogą być przydatne, jeśli kolor pola zależy od koloru bloku. Jest ona wywoływana automatycznie w odpowiednich momentach, na przykład po zmianie bloku nadrzędnego lub mechanizmu renderowania. Więcej informacji znajdziesz w dokumentacji pól. Przykładowe pole to FieldDropdown. |
|
bindEvents_() | protected |
Powiąż zdarzenia z polem. Można ją zastąpić przez podklasy, jeśli wymagają niestandardowej obsługi danych wejściowych. |
configure_(config) | protected |
Przetwórz mapę konfiguracji przekazaną do pola. |
createBorderRect_() | protected |
Utwórz prostokątny element obramowania pola. Nie powinna być zastępowana przez podklasy. Zamiast tego zmodyfikuj wynik funkcji w initView lub utwórz osobną funkcję do jej wywołania. |
createTextElement_() | protected |
Utwórz element tekstowy pola. Nie powinna być zastępowana przez podklasy. Zamiast tego zmodyfikuj wynik funkcji w initView lub utwórz osobną funkcję do jej wywołania. |
doClassValidation_(newValue) | protected |
Sprawdź zmiany wartości pola, zanim zostaną ustawione. Przykład implementacji podklas znajdziesz w sekcji **FieldDropdown**. **UWAGA:** weryfikacja zwraca 1 opcję z zakresu |
doClassValidation_(newValue) | protected |
|
doValueInvalid_(_invalidValue, _fireChangeEvent) | protected |
Służy do powiadamiania pola, że wpisano nieprawidłową wartość. Można ją zastąpić przez podklasy (patrz: FieldTextInput). Domyślnie brak operacji. |
doValueUpdate_(newValue) | protected |
Służy do aktualizowania wartości pola. Można ją zastąpić przez podklasy, aby umożliwić niestandardowe przechowywanie wartości/aktualizowanie rzeczy zewnętrznych. |
fromJson(_options) | static |
Podklasy powinny ponownie wdrożyć tę metodę, aby utworzyć podklasę Field z obiektu JSON arg. Próba zarejestrowania podklasy pola w rejestrze FieldRegistry jest wynikiem błędu, jeśli ta metoda nie została zastąpiona. |
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ęć. Jeśli nie ustawisz tej opcji, domyślną wartością będzie katalog główny SVG pola. Gdy klikniesz ten element w polu z możliwością edytowania, otworzy się edytor. |
getConstants() | Pobierz stałą dostawcę mechanizmu renderowania. | |
getDisplayText_() | protected |
Pobierz tekst z tego pola do wyświetlenia na bryle. Może różnić się od wartości getText ze względu na wielokropek i inne formatowanie. |
getFlipRtl(), | Zwraca, czy mamy odwrócić pole w kierunku RTL. | |
getSize() | Zwraca wysokość i szerokość pola. Powinno to być *ogólnie* jedyne miejsce, z którego jest wywoływane renderowanie_. |
|
getSourceBlock() | Pobierz blok, do którego jest dołączone to pole. | |
getSvgRoot() | Pobiera element grupy dla tego pola z możliwością edytowania. Służy do pomiaru rozmiaru i pozycjonowania. | |
getText_() | protected |
Punkt zaczepienia programisty służący do zastąpienia zwróconego tekstu w tym polu. Zastąp, jeśli tekstowa wartość tego pola nie jest ciągiem tekstowym jej wartości. Aby skorzystać z rzutu ciągu znaków, zwracaj wartość null. |
getText() | Pobierz tekst z tego pola. Zastąp parametr getText_, aby uzyskać inne działanie niż zwykłe przesyłanie wartości na ciąg znaków. | |
getTextContent() | protected |
Pobiera zawartość tekstową. |
getTextElement() | protected |
Pobiera element tekstowy. |
getTooltip() | Zwraca tekst etykietki dla tego pola. | |
getValidator() | Pobiera funkcję weryfikacji pól do edycji lub wartość null, jeśli nie jest ustawiona. | |
getValue() | Pobierz bieżącą wartość pola. | |
initModel() | Inicjuje model pola po jego zainstalowaniu w bryle. Domyślnie brak operacji. | |
initView() | protected |
Utwórz interfejs bloku dla tego pola. |
isClickable() | Sprawdź, czy to pole definiuje funkcję showEditor_. | |
isClickableInFlyout(autoClosingFlyout) | Sprawdź, czy pole powinno być klikalne, gdy bryła jest wysuwana. Domyślnie pola można kliknąć w zawsze otwieranych oknach (np. w prostym menu narzędzi), ale nie w automatycznie zamykanych okienkach, takich jak zestaw narzędzi kategorii. Podklasy mogą zastąpić tę funkcję, aby zmienić to działanie. Pamiętaj, że aby polecenie zadziałało, isClickable też musi zwracać wartość „prawda”. |
|
isCurrentlyEditable() | Sprawdź, czy to pole można obecnie edytować. Niektórych pól (np. etykiet tekstowych) nie da się EDYTOWAĆ. Inne pola mogą być edytowalne, ale mogą znajdować się w blokach, których nie można edytować, lub być obecnie wyłączone. | |
isEnabled() | Sprawdź, czy wartość tego pola można zmienić za pomocą edytora, gdy blok źródłowy można edytować. | |
isFullBlockField() | protected |
Określa, czy to pole powinno zajmować cały blok. Zachowaj ostrożność podczas zastępowania tej funkcji. Może nie działać zgodnie z oczekiwaniami lub zamierzeniami, ponieważ zachowanie zostało zhakowane. Jeśli zastanawiasz się nad zastąpieniem tej funkcji, zamieść posta na forum zgodnie ze swoim zamierzonym zachowaniem i zobacz, czy można zastosować inne rozwiązanie. |
isSerializable() | Sprawdź, czy to pole powinno być serializowane przez mechanizm renderowania XML. Obsługuje logikę na potrzeby zgodności wstecznej i niespójnych stanów. | |
isTabNavigable() | Zwraca, czy w polu można nawigować po kartach. | |
isVisible() | Określa, czy to pole dostępne do edycji jest widoczne czy nie. | |
loadLegacyState(callingClass, state) | Wczytuje podany stan za pomocą starych punktów zaczepienia XML, jeśli mają one być używane. Zwraca wartość „true”, wskazując, że ładowanie zostało przetworzone. W przeciwnym razie zwraca wartość „false” (fałsz). | |
onLocationChange(_) | Informuje pole o zmianie lokalizacji. | |
onMouseDown_(e) | protected |
Obsługa zdarzenia wskaźnika na polu. |
onShortcut(_shortcut) | Obsługuje dany skrót klawiszowy. | |
positionBorderRect_() | protected |
Po zmianie rozmiaru możesz określić położenie obramowania pola. |
positionTextElement_(xOffset, contentWidth) | protected |
Po zmianie rozmiaru możesz określić położenie elementu tekstowego pola. Ta funkcja obsługuje pozycjonowanie zarówno LTR, jak i RTL. |
render_() | protected |
Używana przez getSize() do przenoszenia/zmieniania rozmiaru elementów DOM i uzyskiwania nowego rozmiaru. Tutaj należy przeprowadzać renderowanie, które ma wpływ na rozmiar/kształt bryły. Należy je wywoływać przy użyciu metody getSize(). |
repositionForWindowResize() | Funkcja zaczepienia programisty w celu zmiany położenia obiektu WidgetDiv podczas zmiany rozmiaru okna. Musisz zdefiniować ten punkt zaczepienia, jeśli pole zawiera obiekt WidgetDiv, który musi zmienić swoje położenie po zmianie rozmiaru okna. Na przykład pola do wprowadzania tekstu definiują ten zaczep, dzięki czemu obiekt WidgetDiv może zmienić swoją pozycję w zdarzeniu zmiany rozmiaru okna. Jest to szczególnie ważne, gdy dane modalne są wyłączone, ponieważ urządzenia z Androidem uruchamiają zdarzenie zmiany rozmiaru okna po otwarciu klawiatury programowej. Jeśli chcesz, aby obiekt WidgetDiv się ukrywał zamiast zmieniać jego położenie, zwróć wartość false. Jest to jego ustawienie domyślne. Elementy DropdownDiv obsługują już własną logikę pozycjonowania, więc nie musisz zastępować tej funkcji, jeśli Twoje pole zawiera tylko element DropdownDiv. |
|
saveLegacyState(callingClass) | protected |
Zwraca sformatowaną wersję stanu XML (jeśli ma być używana). W przeciwnym razie zwraca wartość null, aby zasygnalizować pole, że 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 można edytować. | |
setSourceBlock(block) | Dołącz to pole do bryły. | |
setTooltip(newTip) | Ustawia etykietkę dla tego pola. | |
setValidator(handler) | Ustawia nową funkcję weryfikacji pól do edycji lub czyści ustawiony wcześniej 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, aby przerwać zmianę. Jeśli funkcja nie zwróci niczego (lub zwróci niezdefiniowaną wartość), nowa wartość zostanie zaakceptowana jako prawidłowa. Dzięki temu pola mogą używać zweryfikowanej funkcji jako powiadomienia o zdarzeniu zmiany na poziomie pól. |
|
setValue(newValue, fireChangeEvent) | Służy do zmiany wartości pola. Obsługuje weryfikację i zdarzenia. Zamiast tej metody należy zastąpić klasy doClassValidation_ i doValueUpdate_. | |
showEditor_(_e) | protected |
Punkt zaczepienia programisty tworzący edytor pola. To ustawienie jest domyślnie wyłączone i trzeba je zastąpić, by utworzyć edytor. |
updateEditable() | Dodaj lub usuń interfejs użytkownika z informacją, czy to pole jest edytowalne. | |
updateSize_(margin) | protected |
Aktualizuje rozmiar pola na podstawie tekstu. |