Feldklasse
Abstrakte Klasse für ein bearbeitbares Feld.
Unterschrift:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Implementierung:IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Konstruktoren
Konstruktor | Modifikatoren | Beschreibung |
---|---|---|
(Konstruktor)(Wert, Validator, Konfiguration) | 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. |
constants_ | protected |
ConstantProvider | null | Konstanten, die dem Renderer des Quellblocks zugeordnet sind. |
CURSOR | String | Mauszeigerstil, wenn er über dem Hotspot liegt, durch den der Editor gestartet wird. | |
DEFAULT_VALUE | D | null | Wenn Sie den in **Feld** festgelegten Standardwert überschreiben möchten, aktualisieren Sie den Prototyp direkt. Beispiel: |
|
BEARBEITBAR | boolean | Bearbeitbare Felder zeigen normalerweise eine Art Benutzeroberfläche an, die anzeigt, dass sie bearbeitet werden können. Sie werden auch vom Serializer gespeichert. | |
enabled_ | protected |
boolean | Kann der Feldwert bei einem bearbeitbaren Block mit dem Editor geändert werden? |
fieldGroup_ | protected |
SVGGElement | null | Das SVG-Gruppenelement des gerenderten Felds. |
isDirty_ | protected |
boolean | Muss dieser Block noch einmal gerendert werden? |
maxDisplayLength | Zahl | Maximale Anzahl von Textzeichen, die vor dem Hinzufügen von Auslassungspunkten angezeigt werden | |
Name? | String | Optional: Name des Felds. Innerhalb jedes Blocks eindeutig. Statische Labels haben in der Regel keinen Namen. | |
NBSP |
|
(nicht angegeben) | Geschütztes Leerzeichen. |
SERIALISierbar | boolean | Serialisierbare Felder werden vom Serialisierer gespeichert, nicht serialisierbare Felder nicht. Bearbeitbare Felder sollten auch serialisierbar sein. Dies ist nicht standardmäßig der Fall, sodass SERIALIZABLE abwärtskompatibel ist. | |
size_ | protected |
Größe | |
SKIP_SETUP |
|
eindeutiges Symbol | Ein Wert, der signalisiert, wenn der Konstruktor eines Felds den Wert des Felds *nicht* festlegen oder „configure_“ ausführen soll, sondern eine Unterklasse, die dies stattdessen tun soll. |
sourceBlock_ | protected |
Blockieren | null | Blockieren, mit dem dieses Feld verknüpft ist Beginnt mit null und wird dann init festgelegt. |
textContent_ | protected |
Text | null | Das Textinhaltselement des gerenderten Felds. |
textElement_ | protected |
SVGTextElement | null | Das SVG-Textelement des gerenderten Felds. |
validator_ | protected |
FieldValidator<T> | null | Die Validierungsfunktion wird aufgerufen, wenn ein Nutzer ein bearbeitbares Feld bearbeitet. |
value_ | protected |
D | null | |
visible_ | protected |
boolean | Ist das Feld sichtbar oder ausgeblendet, weil der Block minimiert wurde? |
Methoden
Methode | Modifikatoren | Beschreibung |
---|---|---|
applyColour() | Aktualisiert das Feld an die Farbe/den Stil des Blocks Diese Implementierung kann für nicht abstrakte Unterklassen sinnvoll sein, wenn die Farbe des Felds von der Farbe des Blocks abhängt. Es wird automatisch zu relevanten Zeitpunkten aufgerufen, etwa wenn sich der übergeordnete Block oder der Renderer ändert. Weitere Informationen finden Sie in der Felddokumentation oder als Beispiel „FieldDropdown“. |
|
bindEvents_() | protected |
Ereignisse an das Feld binden. Kann von Unterklassen überschrieben werden, wenn eine benutzerdefinierte Eingabeverarbeitung erforderlich ist. |
configure_(config) | protected |
Verarbeiten Sie die Konfigurationszuordnung, die an das Feld übergeben wurde. |
createBorderRect_() | protected |
Erstellt ein Feldrahmen-Rechteckelement. Wird nicht von abgeleiteten Klassen überschrieben. Ä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. Wird nicht von abgeleiteten Klassen überschrieben. Ändern Sie stattdessen das Ergebnis der Funktion in initView oder erstellen Sie eine separate Funktion, die aufgerufen werden soll. |
doClassValidation_(newValue) | protected |
Validieren Sie die Änderungen am Wert eines Felds, bevor sie festgelegt werden. Ein Beispiel für die Implementierung von abgeleiteten Klassen finden Sie unter **FieldDropdown**. **HINWEIS:** Bei der Validierung wird eine Option zwischen |
doClassValidation_(newValue) | protected |
|
doValueUngültig_(_unzulässigerWert, _fireChangeEvent) | protected |
Wird verwendet, um das Feld zu informieren, dass ein ungültiger Wert eingegeben wurde. Kann von abgeleiteten Klassen überschrieben werden, siehe FieldTextInput. Standardmäßig managementfrei. |
doValueUpdate_(newValue) | protected |
Wird zum Aktualisieren des Werts eines Felds verwendet. Kann von abgeleiteten Klassen überschrieben werden, um Werte benutzerdefiniert zu speichern bzw. externe Elemente zu aktualisieren. |
fromJson(_options) | static |
Abgeleitete Klassen sollten diese Methode erneut implementieren, um ihre abgeleitete Field-Klasse aus einem JSON-arg-Objekt zu erstellen. Der Versuch, eine abgeleitete Feldklasse in FieldRegistry zu registrieren, führt zu einem Fehler, wenn diese Methode diese Methode nicht überschrieben hat. |
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 Rahmen-Rechteck-Element ab. |
getClickTarget_() | protected |
Das Element, an das der Klick-Handler gebunden werden soll. Wenn nicht explizit festgelegt, wird standardmäßig der SVG-Stamm des Felds verwendet. Wenn auf dieses Element geklickt wird, wird der Editor geöffnet. |
getConstants() | Anbieter der Renderer-Konstante abrufen | |
getDisplayText_() | protected |
Der Text aus diesem Feld wird im Block angezeigt. Kann aufgrund von Auslassungspunkten und anderen Formatierungen von „getText “ abweichen. |
getFlipRtl() | Gibt zurück, ob das Feld in RTL umgedreht werden soll. | |
getSize() | Gibt die Höhe und Breite des Felds zurück. Dies sollte *im Allgemeinen* der einzige Ort sein, von dem render_ aufgerufen 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, um den zurückgegebenen Text dieses Felds zu überschreiben. Wird überschrieben, wenn die Textdarstellung des Werts in diesem Feld nicht nur eine Stringumwandlung seines Werts ist. Gibt null zurück, um eine Stringumwandlung zu erzeugen. |
getText() | Rufen Sie den Text aus diesem Feld ab. Überschreiben Sie getText_, um ein anderes Verhalten bereitzustellen, als den Wert einfach in einen String umzuwandeln. | |
getTextContent() | protected |
Ruft den Textinhalt ab. |
getTextElement() | protected |
Ruft das Textelement ab. |
getTooltip() | Gibt den Text der Kurzinfo für dieses Feld zurück. | |
getValidator() | Ruft die Validierungsfunktion für bearbeitbare Felder oder null ab, wenn nicht festgelegt. | |
getValue() | Ruft den aktuellen Wert des Felds ab. | |
initModel() | Initialisiert das Modell des Felds, nachdem es in einem Block installiert wurde. Standardmäßig managementfrei. | |
initView() | protected |
Erstellen Sie die Block-UI für dieses Feld. |
isClickable() | Prüfen Sie, ob dieses Feld die Funktion showEditor_ definiert. | |
isClickableInFlyout(autoClosingFlyout) | Überprüfen Sie, ob das Feld anklickbar sein soll, wenn sich der Block in einem Flyout befindet. Standardmäßig sind Felder in immer geöffneten Flyouts wie der einfachen Toolbox anklickbar, in automatisch schließenden Flyouts wie der Kategorie-Toolbox jedoch nicht. Abgeleitete Klassen können diese Funktion überschreiben, um dieses Verhalten zu ändern. Für isClickable muss auch „true“ zurückgegeben werden, damit dies wirksam wird. |
|
isCurrentlyEditable() | Prüfen Sie, ob dieses Feld derzeit bearbeitet werden kann. Einige Felder können nie bearbeitet werden (z.B. Textlabels). Andere Felder sind möglicherweise BEARBEITBAR, befinden sich aber möglicherweise in nicht bearbeitbaren Blockierungen oder sind derzeit deaktiviert. | |
isEnabled() | Prüfen Sie, ob der Wert dieses Feldes mit dem Editor geändert werden kann, wenn der Quellblock bearbeitet werden kann. | |
isFullBlockField() | protected |
Definiert, ob dieses Feld den gesamten Block einnehmen soll oder nicht. Seien Sie vorsichtig, wenn Sie diese Funktion überschreiben. Es funktioniert möglicherweise nicht wie erwartet / beabsichtigt, da es sich um einen Hackerangriff handelt. Wenn Sie darüber nachdenken, diese Funktion zu überschreiben, posten Sie im Forum mit dem gewünschten Verhalten, um zu sehen, ob es einen anderen Ansatz gibt. |
isSerializable() | Überprüfen Sie, ob dieses Feld vom XML-Renderer serialisiert werden soll. Verarbeitet die Logik für Abwärtskompatibilität und nicht stimmige Zustände. | |
isTabNavigable() | Gibt an, ob das Feld über die Tabulatortaste navigierbar ist. | |
isVisible() | Ruft ab, ob dieses bearbeitbare Feld sichtbar ist oder nicht. | |
loadLegacyState(callingClass, state) | Lädt den angegebenen Status entweder mithilfe der alten XML-Hooks, falls diese verwendet werden sollen. Gibt „true“ zurück, wenn der Ladevorgang verarbeitet wurde, andernfalls „false“. | |
onLocationChange(_) | Informiert das Feld darüber, dass sich die Position geändert hat. | |
onMouseDown_(e) | protected |
Verarbeitet ein Pointerdown-Ereignis für ein Feld. |
onShortcut(_shortcut) | Verarbeitet die angegebene Tastenkombination. | |
positionBorderRect_() | protected |
Positioniert das Rahmenrechteck eines Felds nach einer Größenänderung. |
positionTextElement_(xOffset, contentWidth) | protected |
Positioniert das Textelement eines Felds nach einer Größenänderung. Damit wird sowohl die LTR- als auch die RTL-Positionierung verarbeitet. |
render_() | protected |
Wird von getSize() verwendet, um beliebige DOM-Elemente zu verschieben bzw. ihre Größe zu ändern und die neue Größe abzurufen. Jegliches Rendering, das sich auf die Größe/Form des Blocks auswirkt, sollte hier erfolgen und durch getSize() ausgelöst werden. |
repositionForWindowResize() | Entwickler-Hook zur Neupositionierung des WidgetDivs während der Größenänderung des Fensters. Dieser Hook muss definiert werden, wenn das Feld ein WidgetDiv-Element enthält, das sich bei einer Größenänderung des Fensters neu positionieren muss. Dieser Hook wird beispielsweise in Texteingabefeldern definiert, sodass sich das WidgetDiv-Eingabefeld bei einem Ereignis zur Größenanpassung des Fensters neu positionieren kann. Dies ist besonders wichtig, wenn modale Eingaben deaktiviert sind, da Android-Geräte ein Ereignis zur Größenanpassung des Fensters auslösen, wenn die Bildschirmtastatur geöffnet wird. Wenn das WidgetDiv selbst ausgeblendet werden soll, anstatt es neu zu positionieren, geben Sie „false“ zurück. Das ist das Standardverhalten. DropDivs verarbeiten bereits ihre eigene Positionierungslogik, sodass Sie diese Funktion nicht überschreiben müssen, wenn Ihr Feld nur ein DropDiv-Element enthält. |
|
saveLegacyState(callingClass) | protected |
Gibt eine String-Version des XML-Status zurück, falls dieser verwendet werden soll. Andernfalls wird null zurückgegeben, um zu signalisieren, dass das Feld seine eigene Serialisierung verwenden soll. |
setEnabled(enabled) | Legen Sie fest, ob der Wert dieses Felds mit dem Editor geändert werden kann, wenn der Quellblock bearbeitet werden kann. | |
setSourceBlock(block) | Dieses Feld mit einem Block verknüpfen. | |
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. Dadurch werden Felder zugelassen, die die validierte Funktion als Änderungsereignisbenachrichtigung auf Feldebene verwenden. |
|
setValue(newValue, fireChangeEvent) | Wird zum Ändern des Feldwerts verwendet. Verarbeitet Validierung und Ereignisse. Abgeleitete Klassen sollten doClassValidation_ und doValueUpdate_ anstelle dieser Methode überschreiben. | |
showEditor_(_e) | protected |
Einen Entwickler-Hook zum Erstellen eines Editors für das Feld. Dies ist standardmäßig managementfrei und muss überschrieben werden, um einen Editor zu erstellen. |
updateEditable() | Fügen Sie die Benutzeroberfläche hinzu oder entfernen Sie sie, um anzugeben, ob dieses Feld bearbeitbar ist oder nicht. | |
updateSize_(margin) | protected |
Aktualisiert die Größe des Felds basierend auf dem Text. |