Feldklasse
Abstrakte Klasse für ein bearbeitbares Feld.
Unterschrift:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Implementierungen:IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Konstruktoren
Konstruktor | Modifikatoren | Beschreibung |
---|---|---|
(constructor)(Wert, Validator, Konfiguration) | Konstruiert eine neue Instanz der Field -Klasse |
Attribute
Property | 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 | Stil des Mauszeigers, wenn er sich über dem Hotspot befindet, mit dem der Editor gestartet wird. | |
DEFAULT_VALUE | T | null | Um den in **Feld** festgelegten Standardwert zu überschreiben, aktualisieren Sie den Prototyp direkt. Beispiel: |
|
BEARBEITBAR | boolean | Bearbeitbare Felder zeigen normalerweise eine Art UI an, die angibt, dass sie bearbeitbar sind. Sie werden auch vom Serializer gespeichert. | |
aktiviert_ | protected |
boolean | Kann der Feldwert bei einem bearbeitbaren Block mit dem Editor geändert werden? |
Feldgruppe_ | protected |
SVGGElement | null | Das SVG-Gruppenelement des gerenderten Felds. |
isDirty_ | protected |
boolean | Muss dieser Block neu gerendert werden? |
maxDisplayLength | Zahl | Maximale Zeichenanzahl des Textes, der angezeigt werden soll, bevor Auslassungspunkte hinzugefügt werden. | |
Name? | String | (Optional) Name des Felds. Er ist in jedem Block eindeutig. Statische Labels sind normalerweise unbenannt. | |
NBSP |
|
(nicht deklariert) | Geschütztes Leerzeichen. |
SERIALISIERT | boolean | Serialisierbare Felder werden vom Serializer 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 | |
EINRICHTUNG ÜBERSPRINGEN |
|
eindeutiges Symbol | Ein Wert, der signalisiert, wann der Konstruktor eines Felds den Wert des Feldes *nicht* festlegen oder „configure_“ ausführen soll. Stattdessen sollte dies einer Unterklasse ermöglichen. |
sourceBlock_ | protected |
Blockieren | null | Blockieren, an das dieses Feld angehängt ist. Beginnt mit null und wird dann in init festgelegt. |
textContent_ (Textinhalt) | protected |
Text | null | Das Textinhaltselement des gerenderten Felds. |
textElement_ | protected |
SVGTextElement | null | Das SVG-Textelement des gerenderten Felds. |
validator_ | protected |
FieldValidator<T> | null | Validierungsfunktion, die aufgerufen wird, wenn ein Nutzer ein bearbeitbares Feld bearbeitet. |
Wert_ | protected |
T | null | |
visible_ | protected |
boolean | Ist das Feld sichtbar oder ausgeblendet, weil der Block minimiert wurde? |
Methoden
Methode | Modifikatoren | Beschreibung |
---|---|---|
applyColour() | Das Feld wird an die Farbe bzw. den Stil des Blocks angepasst. Dies kann für nicht abstrakte Unterklassen implementiert werden, wenn die Farbe des Feldes von der Farbe des Blocks abhängt. Es wird automatisch zu relevanten Zeiten aufgerufen, z. B. wenn sich der übergeordnete Block oder Renderer ändert. Weitere Informationen finden Sie in der Dokumentation zu Feldern. Im Feld „FieldDropdown“ finden Sie ein Beispiel. |
|
bindEvents_() | protected |
Ereignisse werden an das Feld gebunden. Kann von Unterklassen überschrieben werden, wenn sie eine benutzerdefinierte Eingabeverarbeitung ausführen müssen. |
configure_(config) | protected |
Verarbeiten Sie die an das Feld übergebene Konfigurationszuordnung. |
createBorderRect_() | protected |
Erstellt ein rechteckiges Element mit Feldrahmen. Nicht von Unterklassen überschrieben werden. Ändern Sie stattdessen das Ergebnis der Funktion in initView oder erstellen Sie eine separate Funktion, die aufgerufen werden soll. |
createTextElement_() | protected |
Erstellt ein Feldtextelement. Nicht von Unterklassen überschrieben werden. Ändern Sie stattdessen das Ergebnis der Funktion in initView oder erstellen Sie eine separate Funktion, die aufgerufen werden soll. |
doClassValidation_(newValue) | protected |
Änderungen am Wert eines Feldes validieren, 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 |
|
doValueInvalid_(_invalidValue) | protected |
Dient dazu, dass in das Feld ein ungültiger Wert eingegeben wurde. Kann von Unterklassen überschrieben werden, siehe FieldTextInput. Standardmäßig betriebslos. |
doValueUpdate_(newValue) | protected |
Wird verwendet, um den Wert eines Felds zu aktualisieren. Kann von Unterklassen überschrieben werden, um benutzerdefinierte Werte zu speichern bzw. externe Elemente zu aktualisieren. |
getAbsoluteXY_() | protected |
Gibt die absoluten Koordinaten der oberen linken Ecke dieses Feldes 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. Wenn nicht explizit festgelegt, wird standardmäßig der SVG-Stamm des Felds verwendet. Wenn Sie auf dieses Element in einem bearbeitbaren Feld klicken, wird der Editor geöffnet. |
getConstants() | Rufen Sie den konstanten Renderer-Anbieter ab. | |
getDisplayText_() | protected |
Rufen Sie den Text aus diesem Feld ab, der im Block angezeigt werden soll. Kann aufgrund von Auslassungspunkten und anderer Formatierung 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* die einzige Stelle sein, von der 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 zur Positionierung verwendet. | |
getText_() | protected |
Ein Entwickler-Hook, um den zurückgegebenen Text dieses Felds zu überschreiben. Wird überschrieben, wenn die Textdarstellung des Werts dieses Feldes nicht nur eine Stringumwandlung seines Werts ist. Gibt null zurück, um auf eine Stringumwandlung zurückzugreifen. |
getText() | Rufen Sie den Text aus diesem Feld ab. Überschreiben Sie getText_, um ein anderes Verhalten zu erzielen als einfach den Wert 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 kein Wert festgelegt ist. | |
getValue() | Ruft den aktuellen Wert des Felds ab. | |
initModel() | Initialisiert das Modell des Felds, nachdem es in einem Block installiert wurde. Standardmäßig betriebslos. | |
initView() | protected |
Erstellen Sie die Block-UI für dieses Feld. |
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. Textbeschriftungen) sind nie BEARBEITBAR. Andere Felder sind möglicherweise BEARBEITBAR, können aber in nicht bearbeitbaren Blöcken vorhanden oder derzeit deaktiviert sein. | |
isEnabled() | Prüfen Sie, ob der Wert dieses Feldes mit dem Editor geändert werden kann, wenn der Quellblock bearbeitbar ist. | |
isFullBlockField() | protected |
Legt fest, 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, weil das Verhalten irgendwie gehackt wurde. Wenn Sie darüber nachdenken, diese Funktion zu überschreiben, posten Sie im Forum mit Ihrem beabsichtigten Verhalten, um zu sehen, ob es einen anderen Ansatz gibt. |
isSerializable() | Prüfen Sie, ob dieses Feld vom XML-Renderer serialisiert werden soll. Verarbeitet die Logik für Abwärtskompatibilität und inkonsistente Zustände. | |
isTabNavigable() | Gibt an, ob das Feld über die Tabulatortaste navigierbar ist. | |
isSichtbar() | Ruft ab, ob dieses bearbeitbare Feld sichtbar ist oder nicht. | |
loadLegacyState(callingClass, state) | Lädt den angegebenen Status mithilfe der alten XML-Hooks, falls sie verwendet werden sollten. Gibt „true“ zurück, um anzuzeigen, dass der Ladevorgang durchgeführt wurde, andernfalls „false“. | |
onMouseDown_(e) | protected |
Verarbeitet ein Pointerdown-Ereignis für ein Feld. |
onShortcut(_shortcut) | Verarbeitet das angegebene Tastaturkürzel. | |
positionBorderRect_() | protected |
Positionieren Sie das Rahmenrechteck eines Felds nach einer Größenänderung. |
positionTextElement_(xOffset, contentWidth) | protected |
Positionieren Sie 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 alle 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() | Ein Entwickler-Hook zur Neupositionierung von „WidgetDiv“ während der Größenänderung eines Fensters. Sie müssen diesen Hook definieren, wenn Ihr Feld ein WidgetDiv enthält, das sich neu positionieren muss, wenn die Größe des Fensters geändert wird. Beispielsweise definieren Texteingabefelder diesen Hook, sodass das Eingabe-WidgetDiv sich selbst bei einem Ereignis zur Größenanpassung neu positionieren kann. Dies ist besonders wichtig, wenn modale Eingaben deaktiviert wurden, da Android-Geräte ein Ereignis zur Größenanpassung des Fensters auslösen, wenn die Softtastatur geöffnet wird. Wenn WidgetDiv sich selbst ausblenden 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 hat. |
|
saveLegacyState(callingClass) | protected |
Gibt eine Version des XML-Status als String zurück, falls diese verwendet werden sollte. 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 Feldes mit dem Editor geändert werden kann, wenn der Quellblock bearbeitbar ist. | |
setSourceBlock(block) | Dieses Feld an einen Block anhängen. | |
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 einen validierten Wert zurück. Der validierte Wert kann der Eingabewert, eine modifizierte Version des Eingabewerts oder null sein, um die Änderung abzubrechen. Wenn die Funktion nichts oder einen undefinierten Wert zurückgibt, wird der neue Wert als gültig akzeptiert. Auf diese Weise können Felder die validierte Funktion als Benachrichtigung über Änderungsereignisse auf Feldebene verwenden. |
|
setValue(newValue, fireChangeEvent) | Dient zum Ändern des Feldwerts. Verarbeitet die Validierung und Ereignisse. Abgeleitete Klassen sollten doClassValidation_ und doValueUpdate_ anstelle dieser Methode überschreiben. | |
showEditor_(_e) | protected |
Ein 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() aktualisieren. | Fügen Sie die Benutzeroberfläche hinzu oder entfernen Sie sie, um anzugeben, ob das Feld bearbeitet werden kann oder nicht. | |
updateSize_(margin) | protected |
Aktualisiert die Größe des Feldes basierend auf dem Text. |