blockly > Alan

Alan sınıfı

Düzenlenebilir alan için soyut sınıf.

İmza:

export declare abstract class Field<T = any> implements IKeyboardAccessible, IRegistrable, ISerializable, IFocusableNode 

Uyguladığı arabirimi: IKeyboardAccessible, IRegistrable, ISerializable, IFocusableNode

Markalar

Marka Değiştiriciler Açıklama
(constructor)(value, validator, config) Field sınıfının yeni bir örneğini oluşturur

Özellikler

Mülk Değiştiriciler Tür Açıklama
borderRect_ protected SVGRectElement | null Oluşturulan alanın SVG kenarlığı öğesi.
clickTarget_ protected Öğe | null Tıklama işleyicinin bağlı olduğu öğe.
constants_ protected ConstantProvider | null Kaynak bloğunun oluşturma aracıyla ilişkili sabitler.
DEFAULT_VALUE T | null

**Alan** bölümünde ayarlanan varsayılan değerin üzerine yazmak için doğrudan prototipi güncelleyin.

Örnek: FieldImage.prototype.DEFAULT_VALUE = null;

DÜZENLENEBİLİR boolean Düzenlenebilir alanlar genellikle düzenlenebilir olduklarını belirten bir tür kullanıcı arayüzü gösterir. Bunlar serileştirici tarafından da kaydedilir.
enabled_ protected boolean Düzenlenebilir bir bloktaki düzenleyici kullanılarak alan değeri değiştirilebilir mi?
fieldGroup_ protected SVGGElement | null Oluşturulan alanın SVG grup öğesi.
isDirty_ protected boolean Bu bloğun yeniden oluşturulması gerekiyor mu?
maxDisplayLength sayı Üç nokta eklemeden önce gösterilecek maksimum metin karakter sayısı.
name? dize (İsteğe bağlı) Alanın adı. Her blokta benzersizdir. Statik etiketler genellikle adsızdır.
NBSP

static

readonly

(not declared) Aralıksız boşluk.
SERIALIZABLE boolean Serileştirilebilir alanlar serileştirici tarafından kaydedilir, serileştirilemez alanlar kaydedilmez. Düzenlenebilir alanlar da serileştirilebilir olmalıdır. SERIALIZABLE geriye dönük uyumlu olması için varsayılan olarak bu şekilde ayarlanmamıştır.
size_ protected Boyut Bu alanın boyutunu alır. getSize() ve updateSize() işlevlerinin yan etkileri olduğundan bu işlev, boyutu ayarlarken/alırken istenmeyen oluşturma veya diğer yan etkileri tetiklemeden alan sınırlarını ayarlamak isteyen alt sınıflar için bir dolgu görevi görür. Alt sınıfların, geçersiz kılınan get ve set yöntemlerinin *her ikisini* de geçersiz kılması gerektiğini unutmayın. Uygulama, doğrudan super üzerinden çağrılabilir ancak JS spesifikasyonuna göre var olmalıdır.
SKIP_SETUP

static

readonly

benzersiz simge Bir alanın kurucusunun, alanın değerini ayarlamaması veya configure_'i çalıştırmaması ve bunun yerine bir alt sınıfın bunu yapması gerektiğini belirtmek için kullanılan bir değerdir.
sourceBlock_ protected Engelle | null Bu alanın bağlı olduğu blok. Boş olarak başlar ve init içinde ayarlanır.
textContent_ protected Metin | null Oluşturulan alanın metin içeriği öğesi.
textElement_ protected SVGTextElement | null Oluşturulan alanın SVG metin öğesi.
validator_ protected FieldValidator<T> | null Kullanıcı bir düzenlenebilir alanı düzenlediğinde çağrılan doğrulama işlevi.
value_ protected T | null
visible_ protected boolean Alan görünür mü yoksa blok daraltılmış olduğu için gizli mi?

Yöntemler

Yöntem Değiştiriciler Açıklama
applyColour()

Alanı, bloğun rengiyle/stiliyle eşleşecek şekilde günceller.

Alanın rengi bloğun rengine bağlıysa soyut olmayan alt sınıflar bunu uygulamak isteyebilir. Üst öğe veya oluşturma aracı değiştiğinde olduğu gibi alakalı zamanlarda otomatik olarak çağrılır.

Daha fazla bilgi için alan dokümanlarını veya örnek için FieldDropdown'ı inceleyin.

bindEvents_() protected Etkinlikleri alana bağlayın. Özel giriş işleme yapması gereken alt sınıflar tarafından geçersiz kılınabilir.
canBeFocused() IFocusableNode.canBeFocused işlevine bakın.
configure_(config) protected Alana iletilen yapılandırma haritasını işleyin.
createBorderRect_() protected Alan kenarlığı dikdörtgen öğesi oluşturun. Alt sınıflar tarafından geçersiz kılınamaz. Bunun yerine, initView içinde işlevin sonucunu değiştirin veya çağrılacak ayrı bir işlev oluşturun.
createTextElement_() protected Alan metni öğesi oluşturun. Alt sınıflar tarafından geçersiz kılınamaz. Bunun yerine, initView içindeki işlevin sonucunu değiştirin veya çağrılacak ayrı bir işlev oluşturun.
dispose() Bu düzenlenebilir alana ait tüm DOM nesnelerini ve etkinliklerini kaldırın.
doClassValidation_(newValue) protected

Bir alanın değerinde yapılan değişiklikleri ayarlanmadan önce doğrulayın. Alt sınıf uygulama örneği için **FieldDropdown**'a bakın.

**NOT:** Doğrulama, T, null ve undefined arasından bir seçenek döndürür. **Alan**'ın uygulanması hiçbir zaman undefined döndürmez ancak yeni değer T ile uyumluysa alt sınıfın undefined döndürmesi geçerlidir.

doClassValidation_(newValue) protected
doValueInvalid_(_invalidValue, _fireChangeEvent) protected Alana geçersiz bir değer girildiğini bildirmek için kullanılır. Alt sınıflar tarafından geçersiz kılınabilir. FieldTextInput'e bakın. Varsayılan olarak işlem yapmaz.
doValueUpdate_(newValue) protected Bir alanın değerini güncellemek için kullanılır. Değerleri özel olarak depolamak/harici öğeleri güncellemek için alt sınıflar tarafından geçersiz kılınabilir.
forceRerender() Bu alanın yüklü olduğu bloğun yeniden oluşturulmasını zorunlu kılar. Bu işlem, alanı yeniden oluşturur ve boyut değişikliklerine göre ayarlar. Boyutları zaten kaydedilmiş olduğu için aynı bloktaki diğer alanlar yeniden oluşturulmaz.
fromJson(_options) static

Alt sınıflar, bir JSON arg nesnesinden Field alt sınıflarını oluşturmak için bu yöntemi yeniden uygulamalıdır.

Bir alan alt sınıfı bu yöntemi geçersiz kılmamışsa FieldRegistry'ye kayıt yapmaya çalışmak hatadır.

fromXml(fieldElement) Alanın değerini, belirtilen XML öğesine göre ayarlar. Yalnızca Blockly.Xml tarafından çağrılmalıdır.
getAbsoluteXY_() protected Bu alanın sol üst köşesinin mutlak koordinatlarını döndürme. Başlangıç noktası (0,0), sayfa gövdesinin sol üst köşesidir.
getBorderRect() protected Kenarlık dikdörtgen öğesini alır.
getClickTarget_() protected Tıklama işleyicisinin bağlanacağı öğe. Açıkça ayarlanmazsa varsayılan olarak alanın SVG kökü olur. Düzenlenebilir bir alanda bu öğe tıklandığında düzenleyici açılır.
getConstants() Oluşturucu sabit sağlayıcısını alın.
getDisplayText_() protected Blokta gösterilecek metni bu alandan alın. Üç nokta ve diğer biçimlendirmeler nedeniyle getText ile farklılık gösterebilir.
getFlipRtl() Alanı RTL'de çevirmemiz gerekip gerekmediğini döndürür.
getFocusableElement() IFocusableNode.getFocusableElement işlevine bakın.
getFocusableTree() IFocusableNode.getFocusableTree işlevine bakın.
getSize()

Alanın yüksekliğini ve genişliğini döndürür.

*Genel olarak* render_ işlevinin çağrıldığı tek yer burasıdır.

getSourceBlock() Bu alanın bağlı olduğu bloğu alın.
getSvgRoot() Bu düzenlenebilir alanın grup öğesini alır. Boyutu ölçmek ve konumlandırmak için kullanılır.
getText_() protected Bu alanın döndürülen metnini geçersiz kılacak bir geliştirici kancası. Bu alanın değerinin metin temsili, değerinin dize olarak dönüştürülmesinden ibaret değilse geçersiz kıl. Dize yayınlamaya başvurmak için null döndürün.
getText() Bu alandaki metni alın. Değeri bir dizeye dönüştürmekten farklı bir davranış sağlamak için getText_ işlevini geçersiz kılın.
getTextContent() protected Metin içeriğini alır.
getTextElement() protected Metin öğesini alır.
getTooltip() Bu alanın ipucu metnini döndürür.
getValidator() Düzenlenebilir alanlar için doğrulama işlevini alır veya ayarlanmamışsa null değerini döndürür.
getValue() Alanın mevcut değerini alın.
initModel() Alanın modeli, bir bloğa yüklendikten sonra başlatılır. Varsayılan olarak işlem yapmaz.
initView() protected Bu alan için blok kullanıcı arayüzünü oluşturun.
isClickable() Bu alanın showEditor_ işlevini tanımlayıp tanımlamadığını kontrol edin.
isClickableInFlyout(autoClosingFlyout) Blok bir pop-up'tayken alanın tıklanabilir olup olmadığını kontrol edin. Varsayılan olarak, basit araç kutusu gibi her zaman açık olan pop-up'larda alanlar tıklanabilir ancak kategori araç kutusu gibi otomatik olarak kapanan pop-up'larda tıklanamaz. Alt sınıflar bu davranışı değiştirmek için bu işlevi geçersiz kılabilir. Bunun geçerli olabilmesi için isClickable değerinin de doğru döndürülmesi gerektiğini unutmayın.
isCurrentlyEditable() Bu alanın şu anda düzenlenebilir olup olmadığını kontrol edin. Bazı alanlar hiçbir zaman DÜZENLENEBİLİR değildir (ör. metin etiketleri). Diğer alanlar DÜZENLENEBİLİR olabilir ancak düzenlenemeyen bloklarda yer alabilir veya şu anda devre dışı olabilir.
isEnabled() Kaynak blok düzenlenebilir durumdayken bu alanın değerinin düzenleyici kullanılarak değiştirilip değiştirilemeyeceğini kontrol edin.
isSerializable() Bu alanın XML oluşturucu tarafından serileştirilip serileştirilmeyeceğini kontrol edin. Geriye dönük uyumluluk ve tutarsız durumlarla ilgili mantığı yönetir.
isVisible() Bu düzenlenebilir alanın görünür olup olmadığını alır.
loadLegacyState(callingClass, state) Kullanılması gerekiyorsa eski XML kancalarını kullanarak belirtilen durumu yükler. Yüklemenin tamamlandığını belirtmek için true (doğru), aksi durumda false (yanlış) değerini döndürür.
loadState(state) Alanın durumunu, belirtilen durum değerine göre ayarlar. Yalnızca serileştirme sistemi tarafından çağrılmalıdır.
onLocationChange(_) Alanı, konumu değiştirdiğini bildirir.
onMouseDown_(e) protected Bir alandaki işaretçi aşağı etkinliğini işleme
onNodeBlur() IFocusableNode.onNodeBlur'a bakın.
onNodeFocus() Bkz. IFocusableNode.onNodeFocus.
onShortcut(_shortcut) Belirtilen klavye kısayolunu işler.
positionBorderRect_() protected Boyut değişikliğinden sonra bir alanın kenar dikdörtgenini konumlandırın.
positionTextElement_(xOffset, contentWidth) protected Boyut değişikliğinden sonra bir alanın metin öğesini konumlandırma Bu, hem soldan sağa hem de sağdan sola konumlandırmayı yönetir.
referencesVariables() Bu alanın herhangi bir Blockly değişkenine atıfta bulunup bulunmadığını belirtir. Doğruysa serileştirme ve seri bozma sırasında farklı şekilde ele alınması gerekebilir. Alt sınıflar bunu geçersiz kılabilir.
refreshVariableName() Bu alan değişkenlere referans veriyorsa bu alanın referans verdiği değişken adını yenileyin.
render_() protected

Herhangi bir DOM öğesini taşımak/yeniden boyutlandırmak ve yeni boyutu almak için getSize() tarafından kullanılır.

Bloğun boyutunu/şeklini etkileyen tüm oluşturma işlemleri burada yapılmalı ve getSize() tarafından tetiklenmelidir.

repositionForWindowResize()

Pencere yeniden boyutlandırılırken WidgetDiv'i yeniden konumlandırmak için bir geliştirici kancası. Alanınızda, pencere yeniden boyutlandırıldığında kendisini yeniden konumlandırması gereken bir WidgetDiv varsa bu kancayı tanımlamanız gerekir. Örneğin, metin giriş alanları bu kancayı tanımlar. Böylece giriş WidgetDiv'i, pencere yeniden boyutlandırma etkinliğinde kendisini yeniden konumlandırabilir. Android cihazlar, dokunmatik klavye açıldığında bir pencere yeniden boyutlandırma etkinliği tetiklediğinden bu durum özellikle modal girişler devre dışı bırakıldığında önemlidir.

WidgetDiv'in yeniden konumlandırmak yerine kendisini gizlemesini istiyorsanız false değerini döndürün. Bu varsayılan davranıştır.

Açılır listeler kendi konumlandırma mantıklarını zaten yönetir. Bu nedenle, alanınızda yalnızca bir açılır liste varsa bu işlevi geçersiz kılmanız gerekmez.

saveLegacyState(callingClass) protected Kullanılması gerekiyorsa XML durumunun dize haline getirilmiş bir sürümünü döndürür. Aksi takdirde, alanın kendi serileştirmesini kullanması gerektiğini belirtmek için null döndürülür.
saveState(_doFullSerialization) Bu alanın değerini JSON olarak serileştirilebilecek bir değer olarak kaydeder. Yalnızca serileştirme sistemi tarafından çağrılmalıdır.
setEnabled(enabled) Kaynak blok düzenlenebilir durumdayken bu alanın değerinin düzenleyici kullanılarak değiştirilip değiştirilemeyeceğini ayarlayın.
setSourceBlock(block) Bu alanı bir bloğa ekleyin.
setTooltip(newTip) Bu alanın ipucunu ayarlar.
setValidator(handler)

Düzenlenebilir alanlar için yeni bir doğrulama işlevi ayarlar veya önceden ayarlanmış bir doğrulayıcıyı temizler.

Doğrulayıcı işlevi yeni alan değerini alır ve doğrulanmış değeri döndürür. Doğrulanmış değer, giriş değeri, giriş değerinin değiştirilmiş bir sürümü veya değişikliği iptal etmek için boş olabilir.

İşlev hiçbir şey döndürmezse (veya tanımsız döndürür) yeni değer geçerli olarak kabul edilir. Bu, doğrulanmış işlevi alan düzeyinde değişiklik etkinliği bildirimi olarak kullanan alanlara izin vermek içindir.

setValue(newValue, fireChangeEvent) Alanın değerini değiştirmek için kullanılır. Doğrulama ve etkinlikleri yönetir. Alt sınıflar bu yöntem yerine doClassValidation_ ve doValueUpdate_ yöntemlerini geçersiz kılmalıdır.
showEditor_(_e) protected Alan için bir düzenleyici oluşturmak üzere geliştirici kancası. Bu varsayılan olarak işlem yapmaz ve düzenleyici oluşturmak için geçersiz kılınmalıdır.
toXml(fieldElement) Bu alanın değerini XML olarak dize dönüştürür. Yalnızca Blockly.Xml tarafından çağrılmalıdır.
updateEditable() Bu alanın düzenlenebilir olup olmadığını belirten kullanıcı arayüzünü ekleyin veya kaldırın.
updateSize_(margin) protected Alanın boyutunu metne göre günceller.