blockly > Field

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: FieldImage.prototype.DEFAULT_VALUE = null;

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

static

readonly

(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

static

readonly

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 T, null lub undefined. Implementacja **pola** nigdy nie zwraca wartości undefined, ale podklasa może zwracać wartość undefined, jeśli nowa wartość jest zgodna z metodą T.

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.