Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

blockly > Feld

Feldklasse

Abstrakte Klasse für ein bearbeitbares Feld.

Unterschrift:

export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable 

Implementiert: IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, irregistrierbar

Konstruktoren

Konstruktor Modifikatoren Beschreibung
(Konstruktor)(Wert, Opt_Validator, Opt_Config) Erstellt eine neue Instanz der Field-Klasse

Attribute

Attribut Modifikatoren Typ Beschreibung
BorderRect_ protected SVGRectElement | null Das SVG-Rahmenelement des gerenderten Felds.
clickTarget_ protected Element | null Das Element, an das der Klick-Handler gebunden ist
Konstanten_ protected ConstantProvider | Null Konstanten, die dem Renderer des Quellblocks zugeordnet sind
CURSOR String Bewegen Sie den Mauszeiger über den Hotspot, der den Editor initiiert.
STANDARDWERT T | null

Wenn Sie den in **Field** festgelegten Standardwert überschreiben möchten, aktualisieren Sie den Prototyp direkt.

Beispiel:

FieldImage.prototype.DEFAULT_VALUE = null;

| | BEARBEITBAR | | Boolesch | Bearbeitbare Felder zeigen in der Regel an, dass sie bearbeitet werden können. Sie werden auch vom Serialisierer gespeichert. | | enabled_ | protected | boolean | Kann der Feldwert im Editor für einen bearbeitbaren Block geändert werden? | | fieldGroup_ | protected | SVGGElement | null | Das SVG-Gruppenelement des gerenderten Felds | | isDirty_ | protected | Boolesch | Muss dieser Block neu gerendert werden? | | maxDisplayLength | | number | Maximale Textlänge, die angezeigt werden soll, bevor eine Ellipse hinzugefügt wird. | | Name? | | String | (Optional) Name des Felds. Innerhalb jedes Blocks eindeutig. Statische Labels sind in der Regel unbenannt. | | NBSP |

readonly

static

| (nicht deklariert) | Geschütztes Leerzeichen. | | SERIALIZABLE | | Boolesch | Serialisierbare Felder werden vom Serialisierer gespeichert, nicht serialisierte Felder nicht. Bearbeitbare Felder sollten auch serialisiert werden können. Dies ist nicht standardmäßig der Fall, sodass SERIALIZABLE abwärtskompatibel ist. | | size_ | protected | Größe | | | SKIP_SETUP |

readonly

static

| Sentinel | Ein Wert, der signalisiert, wann der Konstruktor eines Felds *nicht* den Wert des Felds festlegen oder config_ ausführen soll. Stattdessen sollte eine abgeleitete Klasse dies tun. | | sourceBlock_ | protected | Blockieren | null | Blockiert dieses Feld. Beginnt als null und wird dann in init festgelegt. | | textContent_ | protected | Text | null | Der Textinhalt des gerenderten Felds | | textElement_ | protected | SVGTextElement | null | Das SVG-Textelement des gerenderten Felds. | | validator_ | protected | FieldValidator<T> | null | Validierungsfunktion wird aufgerufen, wenn ein Nutzer ein bearbeitbares Feld bearbeitet. | | Wert_ | protected | T | Null | | | visible_ | protected | boolesch | Ist das Feld aufgrund des minimierten Blocks sichtbar oder ausgeblendet? |

Methoden

Methode Modifikatoren Beschreibung
bindEvents_() protected Binden Sie Ereignisse an das Feld. Kann von abgeleiteten Klassen überschrieben werden, wenn sie eine benutzerdefinierte Eingabebehandlung durchführen müssen.
configure_(config) protected Verarbeiten Sie die an das Feld übergebene Konfigurationszuordnung.
CreateBorderRect_() protected Erstellt ein Feldrahmenrechteck-Element. Nicht von Unterklassen zu überschreiben. Ändern Sie stattdessen das Ergebnis der Funktion in initView oder erstellen Sie eine separate Funktion, die aufgerufen werden soll.
createTextElement_() protected Erstellen Sie ein Feldtextelement. Nicht von Unterklassen zu überschreiben. Ändern Sie stattdessen das Ergebnis der Funktion in initView oder erstellen Sie eine separate Funktion, die aufgerufen werden soll.
doClassValidation_(opt_newValue) protected Wird verwendet, um einen Wert zu validieren. Gibt standardmäßig eine Eingabe zurück. Kann von Unterklassen überschrieben werden, siehe FieldDropdown.
doValueUngültiger_Wert protected Wird verwendet, um das Feld über einen ungültigen Wert zu informieren. Kann von Unterklassen überschrieben werden, siehe FieldTextInput. Standardmäßig keine Operation.
doValueUpdate_(neuer Wert) protected Wird verwendet, um den Wert eines Felds zu aktualisieren. Kann von abgeleiteten Klassen überschrieben werden, um eine benutzerdefinierte Speicherung von Werten/Aktualisierung externer Objekte durchzuführen.
getAbsoluteXY_() protected Gibt die absoluten Koordinaten der oberen linken Ecke dieses Felds zurück. Der Ursprung (0,0) ist die linke obere Ecke des Seitentexts.
getBorderRect() protected Ruft das Rahmenrechteckelement ab.
getClickTarget_() protected Das Element, an das der Klick-Handler gebunden werden soll. Enthält standardmäßig kein SVG-Stammverzeichnis des Felds. Wenn Sie auf ein bearbeitbares Feld klicken, wird der Editor geöffnet.
getConstants() Renderer-Konstantenanbieter abrufen.
getDisplayText_() protected Ruft den Text aus diesem Feld ab, der im Block angezeigt werden soll. Kann aufgrund von Auslassungspunkten und anderen Formatierungen von getText abweichen.
getFlipRtl() Gibt zurück, ob das Feld in RTL umgedreht werden soll.
getSize()

Gibt Höhe und Breite des Felds zurück.

Dies sollte *in der Regel* der einzige Ort sein, von dem aus render_ abgerufen wird.

getSourceBlock() Rufen Sie den Block ab, an den dieses Feld angehängt ist.
getSvgRoot() Ruft das Gruppenelement für dieses bearbeitbare Feld ab. Wird zum Messen der Größe und für die Positionierung verwendet.
getText_() protected Ein Entwickler-Hook zum Überschreiben des zurückgegebenen Texts dieses Felds. Wird überschrieben, wenn die Textdarstellung des Felds nicht nur eine Stringumwandlung des Werts ist. Zurück zu null, um auf ein String-Umwandlungsmodell zu verweisen.
getText() Ruft den Text aus diesem Feld ab. Überschreibt getText_, um ein anderes Verhalten bereitzustellen, als nur den Wert in einen String umzuwandeln.
getTextContent() protected Ruft den Textinhalt ab.
getTextElement() protected Ruft das Textelement ab.
getTooltip() Gibt den Kurzinfo-Text für dieses Feld zurück.
getValidator() Ruft die Validierungsfunktion für bearbeitbare Felder ab. Wenn nicht festgelegt, wird null festgelegt.
getValue() Ruft den aktuellen Wert des Felds ab.
isClickable() Prüfen Sie, ob dieses Feld die Funktion „showEditor_“ definiert.
isCurrentlyEditable() Prüfen Sie, ob dieses Feld derzeit bearbeitet werden kann. Einige Felder (z.B. Textlabels) können NICHT BEARBEITEN. Andere Felder können BEARBEITBAR sein, sind aber in nicht bearbeitbaren Blockierungen vorhanden oder derzeit deaktiviert.
isEnabled() Prüfen Sie, ob der Wert dieses Felds im Editor geändert werden kann, wenn der Quellblock bearbeitet werden kann.
isSerializable() Prüfen Sie, ob dieses Feld vom XML-Renderer serialisiert werden soll. Behandelt die Logik für Abwärtskompatibilität und inkonsistente Zustände.
isTabNavigable() Gibt an, ob das Feld über den Tab navigierbar ist.
isViewable() Ruft ab, ob dieses bearbeitbare Feld sichtbar ist.
loadLegacyState(callingClass, status) Lädt den angegebenen Status mithilfe der alten XML-Hooks, falls diese verwendet werden sollten. Gibt „true“ zurück, um anzugeben, dass der Ladevorgang verarbeitet wurde, andernfalls „false“.
onMouseDown_(e) protected Verarbeitet ein Zeigerereignis für ein Feld.
onShortcut(_Shortcut) Behandelt die angegebene Tastenkombination.
positionBorderRect_() protected Positionieren Sie den Rahmenrechteck eines Felds nach einer Größenänderung.
positionTextElement_(xOffset, contentWidth) protected Positionieren Sie das Textelement eines Felds nach einer Größenänderung. Dies übernimmt sowohl die LTR- als auch die RTL-Positionierung.
render_() protected

Wird von getSize() verwendet, um alle DOM-Elemente zu verschieben bzw. ihre Größe anzupassen und die neue Größe abzurufen.

Alle Renderings, die Auswirkungen auf die Größe/Form des Blocks haben, sollten hier vorgenommen und durch getSize() ausgelöst werden.

saveLegacyState(callingClass) protected Gibt eine Stringversion des XML-Status zurück, falls dieser verwendet werden sollte. Andernfalls wird null zurückgegeben, um das Feld mit seiner eigenen Serialisierung zu verwenden.
setEnabled(aktiviert) Legen Sie fest, ob der Wert dieses Felds im Editor geändert werden kann, wenn der Quellblock bearbeitet werden kann.
setSourceBlock(block) Dieses Feld wird an einen Block angehängt.
setTooltip(newTip) Legt die Kurzinfo für dieses Feld fest.
setValidator(handler)

Legt eine neue Validierungsfunktion für bearbeitbare Felder fest oder löscht eine zuvor festgelegte Validierung.

Die Validierungsfunktion übernimmt den neuen Feldwert und gibt den validierten Wert zurück. Der validierte Wert kann der Eingabewert, eine geänderte Version des Eingabewerts oder null sein, um die Änderung abzubrechen.

Wenn die Funktion nichts oder nicht definierte Werte zurückgibt, wird der neue Wert als gültig akzeptiert. So können Sie Felder mit der validierten Funktion als Änderungsbenachrichtigung auf Feldebene verwenden.

setValue(newValue) Wird verwendet, um den Wert des Felds zu ändern. Führt Validierung und Ereignisse aus. Abgeleitete Klassen sollten doClassValidation_ und doValueUpdate_ statt dieser Methode überschreiben.
showEditor_(_e) protected Entwickler-Hook zum Erstellen eines Editors für das Feld. Dies ist standardmäßig keine Operation und muss überschrieben werden, um einen Editor zu erstellen.
updateEditable() Fügen Sie die UI hinzu oder entfernen Sie sie, um anzugeben, ob dieses Feld bearbeitet werden kann.
updateMarkers_() protected Ziehen Sie bei Bedarf alle angehängten Marker oder Cursor-SVG-Dateien neu.
updateSize_(opt_margin) protected Aktualisiert die Größe des Felds basierend auf dem Text.